Jersey 客户端的 URL 编码问题

Bee*_*nny 5 java jersey-client jersey-2.0

我需要进行如下服务调用: 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();
...
Run Code Online (Sandbox Code Playgroud)

让我困惑的是,如果我仅使用 Chrome 发出相同的请求,一切都会正常。所以这让我相信我应该通过 Jersey API 来“禁用”编码。

kqr*_*kqr 6

到目前为止,我发现使用“原始”Url 的唯一方法是使用 URI。所以像这样调用

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

你得到请求网址

1 > GET http://localhost/~Common~0#/edit?vadf&&sfs&&fdsfd=fs&fsd
Run Code Online (Sandbox Code Playgroud)

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