2017-02-23 100 views
0

Я пытался понять использование InterceptingAsyncClientHttpRequestFactory. Когда вы запускаете тест с MockRestServiceServer, я увидел, что requestFactory украшен этой ResquestFactory. Есть ли другое использование этого запросаFactory? В принципе, я хочу знать идею за InterceptingAsyncClientHttpRequestFactory. Поскольку я не мог найти примеров, чтобы использовать его. Ниже код не работает.InterceptingAsyncClientHttpRequestFactory Использование

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

Общая идея фабрики запросов заключается в том, что вы можете настроить, как реализации HttpAccessor, такие как RestTemplate, обрабатывают запросы. Если вы не указали что-либо, вы получаете не пул HttpURLConnection, но весна предлагает фабрики для Appache HttpClient и других библиотек третьей части.

InterceptingAsyncClientHttpRequestFactory является декоратором, который позволяет подключать перехватчики, которые изменяют запрос до его отправки. Одним из таких перехватчиков является BasicAuthorizationInterceptor, который добавляет заголовок авторизации для каждого запроса. Если у вас есть материал, который вам нужно сделать для каждого запроса, вы можете создать свой собственный ClientHttpRequestInterceptor.

+0

Thank @Klaus. Я понял эту часть. но все же, когда я пытаюсь использовать его, как показано в моем обновленном вопросе, он не работает. Также мы можем добавить перехватчик из метода setInterceptors для asyncRestTemplate. –