HttpComponentsClientHttpRequestFactory весной 3.0

#java #spring #proxy #apache-httpclient-4.x #apache-commons-httpclient

#java #spring #прокси #apache-httpclient-4.x #apache-commons-httpclient

Вопрос:

Добрый день,

В моем веб-приложении Java я пытаюсь создать restTemplate вызов, который сначала проходит через прокси, прежде чем перейти к месту назначения, и я использую Spring 3.0.4.

Основываясь на этой статье, https://developer.ibm.com/answers/questions/394270/im-using-an-apache-httpclient-to-make-an-outbound/ , Мне нужно использовать HttpClientBuilder . Итак, мой код будет следующим:

 HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
httpClientBuilder.setRoutePlanner( getProxyRoutePlanner() );
CloseableHttpClient httpClient = httpClientBuilder.useSystemProperties( ).build( );
  

До этого шага мне нужно RequestFactory сохранить это httpClient . Однако в моем Spring 3.0.4 у меня есть только 3 RequestFactory , то есть SimpleClientHttpRequestFactory , ClientHttpRequestFactory и CommonsClientHttpRequestFactory .

SimpleClientHttpRequestFactory и ClientHttpRequestFactory нет конструктора для хранения httpClient . CommonsClientHttpRequestFactory имеет, но использует старую версию httpClient , которая org.apache.commons.httpclient.HttpClient отличается от CloseableHttpClient приведенного выше кода.

Хотел бы получить совет о том, как передать httpClient в RequestFactory весной 3.0.4. Или есть другой способ сделать это.

Комментарии:

1. Вы не можете. Поскольку Spring 3 поддерживает только более старые версии библиотеки HttpClient. Либо обновите Spring, либо используйте более старую версию библиотеки HttpClient.

2. @M.Deinum, возможно или каким-либо другим способом привести CloseableHttpClient к более старой версии HttpClient библиотеки?