我正在尝试使用Jersey2调用OData服务。
我的问题是
final WebTarget target = JerseyClientBuilder.newClient().target("http://some.endpoint.url/odata/v1").path("MyEntity").queryParam("$top", 100);
生成为
http://some.endpoint.url/odata/v1/MyEntity?%24top=100
而不是
http://some.endpoint.url/odata/v1/MyEntity?$top=100
如何使用不能进行url编码的保留字符设置查询参数?
答案 0 :(得分:0)
我发现了一个丑陋的解决方案,将有问题的部分设置为新的 WebTarget 的URI:
final Client client = JerseyClientBuilder.newClient()
WebTarget target = client.target("http://some.endpoint.url/odata/v1").path("MyEntity");
target = client.target(target.getUriBuilder().uri(target.getUri() + "?$top=100"));
JsonNode response = target.request(MediaType.APPLICATION_JSON_TYPE).buildGet().invoke(JsonNode.class)
更好的解决方案仍然是首选