2017-02-09 19 views
0

私はgrailsプロジェクトからWebサービスを利用しようとしています。私はhttpbuilder 0.7.2を使用しています。以下は私のhttpクライアントです。Groovy httpbuilder投稿リストのパラメータ

私はこのような何かに送信しようとしていたときに問題が来ている
static def webServiceRequest(String baseUrl, String path, def data,method=Method.GET,contentType=ContentType.JSON){ 

      def ret = null 
      def http = new HTTPBuilder(baseUrl) 
      http.request(method, contentType) { 
       uri.path = path 
       requestContentType = ContentType.URLENC 
       if(method==Method.GET) 
        uri.query = data 
       else 
        body = data 
       headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.0.4' 
       response.success = { resp, json -> 
        println "response status: ${resp.statusLine}" 
        ret = json 
        println '--------------------' 
       } 
      } 
      return ret 

    } 

:私は私の中のポストデータの値を印刷していたときに

def input = [:] 
input['indexArray'] = [1,5] 

API呼び出し

def response = webServiceRequest(url,uri,input,Method.POST) 

をサーバーはリストの最後の値のみを表示します。

{ "indexArray": "5"}

あなたはContentTypeをアプリケーション/ x-www-form-urlencodedでを使用してJSONデータを送信する場合は、両方の1および5

+0

なぜ「ContentType.JSON」ではなく「ContentType.URLENC」を使用していますか? –

+0

これがなければ、サーバーは何も受信していません –

答えて

0

を示すべきデータを本体に追加する前にデータを明示的に変換する必要がある場合は、(データをJSONとして)使用できます。