2017-02-23 12 views
0

私はInterceptingAsyncClientHttpRequestFactoryの使用を理解しようとしていました。 MockRestServiceServerでテストを実行すると、requestFactoryがこのResquestFactoryで装飾されていることがわかりました。このrequestFactoryの他の用途はありますか?基本的に私はInterceptingAsyncClientHttpRequestFactoryの背後にあるアイデアを知りたいです。私はそれを使用する例を見つけることができませんでした。 以下のコードは機能しません。インターセプトAsyncClientHttpRequestFactory

AsyncClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsAsyncClientHttpRequestFactory(
      httpAsyncClient); 
    List<AsyncClientHttpRequestInterceptor> interceptors = new ArrayList<>(1); 
    interceptors.add(asyncRestReqResInterceptor()); 
    AsyncClientHttpRequestFactory interceptorFactory = new InterceptingAsyncClientHttpRequestFactory(
      clientHttpRequestFactory, interceptors); 
    AsyncRestTemplate asyncRestTemplate = new AsyncRestTemplate(interceptorFactory); 

正しい実装を教えてください。

答えて

0

要求工場の背後にある一般的な考え方は、RestTemplateなどのHttpAccessor実装がどのように要求を行うかをカスタマイズできるということです。何も指定しなければ、プールされていないHttpURLConnectionが得られますが、SpringはAppache HttpClientやその他の第3の部分ライブラリ用のファクトリを提供します。

InterceptingAsyncClientHttpRequestFactoryはデコレータで、インターセプタを差し込み、送信されたリクエストを変更します。そのようなインターセプタの1つは、すべての要求にAuthorizationヘッダーを追加するBasicAuthorizationInterceptorです。あなたはすべての要求にあなたがする必要があるものがある場合は、独自のClientHttpRequestInterceptorを作成することができます。

+0

ありがとう@Klaus。私はこの部分を理解しました。私の更新された質問に示されているようにそれを使用しようとすると、それは動作しません。また、asyncRestTemplateの 'setInterceptors'メソッドからインターセプタを追加することもできます。 –

関連する問題