您好我尝试将ArrayList作为POST请求的参数从我的Android应用程序发送到服务器。到目前为止,我有这段代码:
HttpResponse response;
List<NameValuePair> postParams = new ArrayList<NameValuePair>(2);
postParams.add(new BasicNameValuePair("post[text]", text));
postParams.add(new BasicNameValuePair("post[common_comments]", String.valueOf(commonComments));
postParams.add(new BasicNameValuePair("post[wall_ids]", wallIds);
UrlEncodedFormEntity encodedParams;
try {
encodedParams = new UrlEncodedFormEntity(postParams);
post.setEntity(encodedParams);
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
但BasicNameValuePair仅接收String作为值。有什么办法可以发送一个ArrayList作为post [wall_ids]的值吗?
提前致谢。
答案 0 :(得分:1)
for(String wallyID: wallyIDs)
postParams.add(new BasicNameValuePair("extraFields[wallyIDs][]", wallyID));
如果你想使用拉丁字符(这会让服务器忘记),使用“utf 8”格式也会很好,例如:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(postParams, HTTP.UTF_8));
我有一个关于List构造函数的问题...为什么你使用2作为它的参数??
PS:我想做一个问题,而不是答案,因为我不知道它是否可以按你的意愿运作。