嗨,我正在尝试将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:我想提出一个意见,而不是一个答案,因为我不知道它是否可以按您的意愿工作。

08-18 13:44
查看更多