httpclient 4.x重复查询字符串参数

时间:2013-02-04 15:56:21

标签: apache-httpclient-4.x

感谢阅读。

我正在尝试调用IBM REST API,它要求重复查询字符串参数。在这种特殊情况下,要执行搜索,您需要为每个条件传入“condition”查询字符串参数。

例如,

HTTP:/.../其余/检索条件=名| NotEquals | sublimemm&安培;条件=年龄|每种不超过| 30

在最新的apache http客户端中使用URIBuilder,可以这样做:

    URIBuilder builder = new URIBuilder();
    builder.setScheme("http").setHost(host).setPort(port).setPath(restPath + searchUri)
    .setParameter("condition", "taskActivityName|RouteHumanTask")
    .setParameter("condition", "taskStatus|NotEquals|Closed");

    HttpPost post = getHttpPostMethod(builder.build());

问题是URIBuilder会将查询字符串参数“condition”添加一个值,然后用第二个值覆盖它。它在内部使用了一个键入参数名称的映射,所以在这个特定的用例中似乎不可能使用这个类。

我做错了吗?我可以在URIBuilder上设置一个选项来解决这个问题吗?有什么想法吗?

谢谢StackOverflow, Sublimemm

1 个答案:

答案 0 :(得分:2)

使用URIBuilder#addParameter代替URIBuilder#setParameter