0

我正在尝试使用 HttpClient API 对服务器进行 JSON 调用。代码片段如下所示。

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,并将该 Entity 设置为 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 回答