如何使用Apache HTTPClient的post方法将List发送到服务器

时间:2012-10-12 12:22:44

标签: java http apache-commons-httpclient

我希望在HTTP Post请求中添加List<Beans>

在使用Apache HTTPClient时,我无法做同样的事情。

这就是我想要做的事情:

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);

nameValuePairs.add(new BasicNameValuePair("dailySalesList",beanList));

post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

但是,BasicNameValuePair似乎只接受2个字符串作为参数。我希望利用它,以便我可以使用字符串 - 用于标识和对象 - 来传递List。 基本上类似于使用Map的功能。

关于如何使用Apache HTTPClient完成任何指示?

2 个答案:

答案 0 :(得分:1)

此上下文中的NameValuePair用于将简单文本参数作为URL中的查询发送(有时您会看到?foo = 1&amp; bar = 2参数)。发送更复杂的内容(如列表)的最佳方法是以XML或JSON等交换格式序列化,然后将其作为请求体发送。

答案 1 :(得分:0)

感谢Kiyura指出我正确的方向,使用JSON。

我利用GSON java库从List转换为JSON表示。

它是一个漂亮的库,以防您想要使用JSON而无需手动转换通用类型。

gson doc也是一个很好的参考。