2016-11-14 58 views
0

我想使用Jersey2來調用OData服務。Jersey2客戶端:使用不帶編碼的保留字符

我的問題是

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

我發現一個醜陋溶液中的問題的部分作爲URI設置到一個新的WebTarget

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) 

更好的解決方案仍然優選

相關問題