0

HttpClientAPIを使用してサーバーにJSON呼び出しを行おうとしています。コードsinppetを以下に示します。

HttpClient httpClient = new DefaultHttpClient();
HttpGet httpPost = new HttpPost(URLString);
HttpResponse response = httpClient.execute(httpPost);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);  
nameValuePairs.add(new BasicNameValuePair("method", "completeUserLogin")); 
String[] params = new String[]{"100408"};
response = httpClient.execute(httpPost);

nameValuePairsにパラメータを追加したいと思います。BasicNameValuePairクラスでは、配列を追加できません。何かご意見は?

前もって感謝します!

4

2 に答える 2

6

これを見てください。ここでは、BasicNameValuePairsで配列を渡します。ここで、色はサーバーに送信する配列です。色の代わりに配列変数を使用する必要があります。

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
nameValuePairs.add(new BasicNameValuePair("colours[0]","red"));  
nameValuePairs.add(new BasicNameValuePair("colours[1]","white"));  
nameValuePairs.add(new BasicNameValuePair("colours[2]","black"));  
nameValuePairs.add(new BasicNameValuePair("colours[3]","brown"));  

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
response = httpClient.execute(httpPost);
于 2012-09-11T08:40:40.373 に答える
1

json形式でデータを投稿する場合は、このようなパラメーターを投稿しないでください。代わりに、JSONObjectを作成して、これらの値をそのjsonオブジェクトに配置し、そのjsonオブジェクトから文字列を取得してから、StringEntityを作成し、このエンティティをHttpPostオブジェクトに設定します。

リクエスト用のJSONObjectの作成:

JSONObject json=new JSONObject();
json.put("method", "completeUserLogin");
JSONArray arr= new JSONArray();
arr.put("100408");
json.put("params", arr);

String params=json.toString();
于 2012-09-11T08:40:54.547 に答える