泽西 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")
我使用 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")