首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >POSTing数组

POSTing数组
EN

Stack Overflow用户
提问于 2014-07-20 15:02:33
回答 1查看 32关注 0票数 0

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

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

代码语言:javascript
复制
            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,真的不可能发布列表而不是ValuePair吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-20 15:18:41

如果查看API,可以看到列表必须扩展NameValuePair。因此,您自己的类也需要扩展NameValuePair类。

但为什么要这样呢?如果您查看您提供的代码的第三行

代码语言:javascript
复制
httpPost.setEntity(new UrlEncodedFormEntity(myBooks));

这里的重要部分是注意到UrlEncodedFormEntity。UrlEncoded数据将由简单的名称和值对组成,如下所示:

代码语言:javascript
复制
name=bob&age=20

如果您提供了一个已经由名称及其值(NameValuePair)组成的列表,则可以通过库为您完成此任务。

如果您只想发布任意数据,可以使用StringEntity自己完成。

代码语言:javascript
复制
httpPost.setEntity(new StringEntity(myString));

在任何情况下,请不要忘记添加狂欢内容类型标题到您的帖子!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24851749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档