Jersey客户端的Url编码问题

时间:2016-02-08 00:13:32

标签: java jersey-2.0 jersey-client

我需要进行如下服务调用: http://myservice.com/path?var1=value1&var2=value2

我遇到的问题是value1和value2最终被编码,这使得服务调用失败。例如,value1类似于" a = b& b = c; 2&& =" ...它基本上包含特殊字符。

我猜这是修复服务的问题 - 正确处理解码编码字符,我认为它目前没有。

以下是我如何提出这些请求的示例:

WebTarget target = client.target("http://test.com")
    .path("path1")
    .queryParam("var1", var1);
Builder builder = target.request();
...

让我感到困惑的是,如果我只使用Chrome提出相同的请求,一切正常。所以这让我相信我应该使用泽西API的#34;禁用"编码。

1 个答案:

答案 0 :(得分:3)

到目前为止,我发现使用" raw" Url是使用URI。 所以这样打电话

URI uri = URI.create("http://localhost/~Common~0#/edit?vadf&&sfs&&fdsfd=fs&fsd");
WebTarget target = client.target(uri);

您收到请求网址

1 > GET http://localhost/~Common~0#/edit?vadf&&sfs&&fdsfd=fs&fsd

我尝试的其他所有内容都会导致编码特殊字符。