2016-11-14 10 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 

の代わりに、私はURLでなければなりません予約文字でクエリパラメータを設定するにはどうすればよい

http://some.endpoint.url/odata/v1/MyEntity?$top=100 

として生成されていることですエンコードされた?

答えて

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) 

より良い解決策はまだ

を好まれます
関連する問題