在jersey 2.x中使用GET将查询参数列表发送到jersey客户端?

时间:2015-10-23 22:27:05

标签: java rest jersey-client

在jersey 1.4版本中(至少这是我在网上找到的唯一参考资料)有com.sun.jersey.api.client.WebResource你可以使用Webresource.queryParams()发送参数列表...似乎该方法不再存在于jersey-client 2.x ...我想它仍然可以做到这一点(无需手动拼凑查询字符串)? WebTarget类有一个方法:

public WebTarget queryParam(String name, Object... values);

但没有queryParams()方法。

2 个答案:

答案 0 :(得分:4)

多次调用queryParam()。如

target.queryParam("foo", "fooValue").queryParam("bar", "barValue");

如果你有地图,你可以遍历条目:

for (Map.Entry<String, Object> entry : map.entrySet()) {
    target = target.queryParam(entry.getKey(), entry.getValue());
}

答案 1 :(得分:2)

您可以使用public WebTarget queryParam(String name, Object... values);方法:

target.queryParam("foo", "fooValue", "barValue", "anythingElseValue");

如果你已经有了List,只需将它作为普通数组传递:

List<String> list = new ArrayList<>();
list.add("foo");
list.add("bar");

target.queryParam("foo", list.toArray());