泽西 URL 加密无效

Jersey URL invalid encrypt

我使用 Jersey javax.ws.rs 调用一个 url

java:

...
String eoEndPoint = "http://exemple.com/";
String url = "offres/test/2015-01-07?return=2015-01-09&withThac=false";
ClientConfig clientConfig = new ClientConfig();
Client client = ClientBuilder.newClient(clientConfig).register(new Authenticator(user, password));
WebTarget webTarget;
webTarget = client.target(eoEndPoint)
  .path(url);
Invocation.Builder invocationBuider = webTarget.request();
invocationBuider.accept(mediaType);
Offers response = invocationBuider.get(Offers.class);
return response;
...

当我执行这段代码时,我有一个 HTTP 404 Not Found 为什么 invocationBuider.get(Offers.class); 将我的 url http://exemple.com/offres/test/2015-01-07?return=2015-01-09&withThac=false 转换为 http://exemple.com/offres/test/2015-01-07%3Dreturn=2015-01-09&withThac=false

?%3D为什么.?

您将查询参数传递给需要 URI 的 path() 方法,因此任何特殊字符(例如 ?=)都将被转义。您需要使用专用方法 queryParam() 来提供查询参数。

替换

.path(url); // "offres/test/2015-01-07?return=2015-01-09&withThac=false";

.path("offres/test/2015-01-07")
.queryParam("return", "2015-01-09")
.queryParam("withThac", "false")