我正在尝试使用HttpClient API对服务器进行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);
我想将params添加到nameValuePairs。 BasicNameValuePair类不允许您添加数组。有什么想法吗?
提前致谢!
答案 0 :(得分: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);
答案 1 :(得分:1)
如果您要以json格式发布数据,那么您不应该发布这样的params。而是创建一个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();