2016-06-21 4 views
2

発信要求にクエリパラメータを添付するだけで済みます。 (Java EE 7.0、JAX-RS 2.0)ClientRequestFilterでのクエリパラメータの添付

具体的には、私は現在RESTeasy Client ver 3.0.14を使用していますので、fancy interface-proxyシステムを使用して呼び出します。私は、同様client.register(MyRequestFilter.class)でそれを登録したことを確認した

@Provider 
public class MyRequestFilter implements ClientRequestFilter { 

    @Context 
    private HttpServletRequest servletRequest; 

    public void filter(ClientRequestContext requestContext) throws IOException { 

     servletRequest.getParameterMap().put("timestamp", new String[]{ 
       String.valueOf(new Date().getTime()) 
     }); 

    } 
} 

:で

myapplication/api/path?timestamp=000

:私はこのような何かを生成しようとしました。お気軽に質問してください。ありがとう!あなたは今、それを確認し、再度

requestContext.getUri().toString(); 

で新しいクエリパラメータを見ることができます

requestContext.setUri(UriBuilder.fromUri(requestContext.getUri()).queryParam("key", value).build()); 

をこのようなrequestContextからURIを再構築 - @peeskilletする

+0

私が重複としてマークした理由は、間違ったフィルタを使用しているためです。クエリパラメータやヘッダとは関係ありません。クライアントフィルターを使用する必要がある場合は、サーバーフィルターを使用しています(重複した投稿に記載されています) –

+0

正しいフィルターでどのように行うのかわからない場合は、投稿を更新してくださいクライアントフィルタを使用して、私は質問を再開してうれしいです。 –

+0

オハイオ州の小さな見落とし、ありがとう、私はちょっと塩辛いXDが私の悪いです。 –

答えて

3

クレジットRESTクライアントを作成するときに登録してください

client.register(MyRequestFilter.class); 
+0

Perfecto –

関連する問題