2017-06-29 8 views
0

HTTP POST呼び出しにパラメータリストを渡す必要があります。HttpPostパラメータJavaのBasicNameValuePair

は、サーバから期待される実際のJSONは次のとおりです。

{ 
"par1": "val1", 
"par1": "val1", 
"par3": ["val1", "val2", "val3"] 
} 

ここでのJavaスタブです:

List<NameValuePair> parameters = new ArrayList<>(); 
parameters.add(new BasicNameValuePair("par1", "val1")); 
parameters.add(new BasicNameValuePair("par2", "val2")); 
parameters.add(new BasicNameValuePair("par3", "["val1", "val2", "val3"]")); 

は、これは私がHttpPostオブジェクトにパラメータを渡す方法です:

httpPost.setEntity(new UrlEncodedFormEntity(parameters)); 

エンドポイントは4゜ラインが示すように配列を期待していますが、arとして渡す方法はわかりませんレイ。

はStackOverflowの上で検索しようと、次の解決策を見つけた:

//inside for loop 
parameters.add(new BasicNameValuePair(String.format("par[%d]", incremental), "value"+incremental)); 

または

//inside for loop 
parameters.add(new BasicNameValuePair("par[]", "value"+incremental)); 

または

String values = "" + 
      "[" + 
       "\"val1\"," + 
       "\"val2\"," + 
       "\"val3\"" 
      "]"; 


parameters.add(new BasicNameValuePair("par3", values)); 

を実際に、私は私がすることはできませんので、サーバ側をデバッグすることはできません彼らが正しいかどうかを言う。以来、彼らの誰も働いていなかった。

どのように私はそれをJava上で作ることができますか? "VAL1"、

"PAR1": "VAL1"、

"PAR3":

答えて

0

サーバからの実際のJSONは

"PAR1" である[ "VAL1"、」 VAL2" 、 "val3は"]

私はこの問題は、あなたが取得していることだと思います

「par1」:「val1」

サーバ側から2回。 'VAL2'

PAR2に2番目の変更

関連する問題