Rest jersey client将json字符串传递给GET方法

时间:2014-06-11 13:53:53

标签: json rest

我希望将此格式的字符串{“filters”:{“keyword”:“abc”}}作为过滤器或搜索参数传递给REST api url的GET方法。

Client client = Client.create();
WebResource webResource = client.resource(url);
ClientResponse response2 = null;
MultivaluedMap<String, String> queryParams;
queryParams = new MultivaluedMapImpl();
queryParams.add("{filters","keyword:abc");
response2 = webResource.queryParams(queryParams).header("Content-Type", "application/json;charset=UTF-8").get(ClientResponse.class);
System.out.println("Response Code = "+response2.getStatus());
outputFilter = response2.getEntity(String.class);

上面的内容对我不起作用,因为过滤器会在url的末尾附加 基本上我想实现REST api + Jersey中提到的,就像下面提到的那样

curl -i -H "accept: application/json" -H "Content-type: application/json" -X GET -d '{ "filters": { "keyword":"xyz" } }' ../v1/users?token=[api_token] .

是否有另一种方法可以将字符串作为输入参数传递给GET方法并检索相关结果     请建议是否有任何技术,我可以将上述字符串传递给GET方法并根据应用的过滤器检索数据

提前致谢。

1 个答案:

答案 0 :(得分:0)

GET请求不应该有请求正文/内容。因此,您不应该尝试使用GET提交数据。提到的CURL命令看起来错误地将-d参数与GET一起使用。

您需要通过URL将任何参数传递给GET。

此外,代码看起来很奇怪。你真的想把钥匙放在钥匙里吗?

queryParams.add("{filters","keyword:abc");

我会参考API文档,了解如何提供过滤条件。