嗨,我正在尝试将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]的值?
提前致谢。
最佳答案
布宜诺斯艾利斯卡拉。
我不知道您是否解决了这个问题(两个月是很多时间)...但是也许可以为您提供帮助:
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:我想提出一个意见,而不是一个答案,因为我不知道它是否可以按您的意愿工作。