张贴arraylist

时间:2014-07-20 15:02:33

标签: java android arraylist http-post

在大多数q& a名称值对中,用于POST;

  

List<NameValuePair> myBooks = new ArrayList<NameValuePair>();

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(myBooks));

但是当我尝试将params更改为arrayList时,

  

List<Books> myBooks = //从另一个类“

完成

我明白了:

  

The constructor UrlEncodedFormEntity(List<myBooks>) is undefined

如果没有Jackson lib,真的不可能发布List而不是ValuePair吗?

1 个答案:

答案 0 :(得分:2)

如果查看the API,您可以看到该列表必须展开NameValuePair。 所以你自己的类也需要扩展NameValuePair类。

但为什么会这样呢?如果你看一下你提供的代码的第三行

httpPost.setEntity(new UrlEncodedFormEntity(myBooks));

这里重要的部分是注意UrlEncodedFormEntity。  UrlEncoded数据将包含简单的名称和简单名称。价值对,像这样:

name=bob&age=20

如果您提供的列表已经包含带有值(NameValuePair)的名称,那么您可以通过库为您完成此操作。

如果您只想发布仲裁数据,可以使用StringEntity自行完成。

httpPost.setEntity(new StringEntity(myString));

在任何情况下,请不要忘记将新的内容类型标题添加到您的POST!