HttpComponentsClientHttpRequestFactory teraz wymaga Apache HttpClient 5

W Spring Framework 6, wsparcie dla Apache HttpClient 4.x został usunięty z HttpComponentsClientHttpRequestFactory. Komponenty, które polegają na tej fabryce, takie jak RestTemplate musi teraz używać Apache HttpClient 5.xktóry wykorzystuje org.apache.hc.* .

Każde użycie HttpClient 4.x klasy takie jak CloseableHttpClient, HttpClient, RequestConfiglub HttpContext z org.apache.http.* pakiet w ramach infrastruktury klienta Spring ' HTTP (w tym konstruktory, wywołania metod lub konfiguracje obejmujące HttpComponentsClientHttpRequestFactory) może prowadzić do błędów kompilacji i musi zostać zaktualizowana, aby używać HttpClient 5.x odpowiedniki.

Przejrzyj następujące metody i konstruktory z HttpComponentsClientHttpRequestFactory aby upewnić się, że nie odwołują się do interfejsów API HttpClient 4.x :

Poniższy przykład pokazuje nieprawidłowe użycie, które zostanie oflagowane:


import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class InvalidHttp4ClientUsage {
    public void example() {
      CloseableHttpClient client = HttpClients.custom().build();
      RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(client));
        }
    }

Poniższy przykład pokazuje prawidłowe zmigrowane użycie:


import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
public class ValidHttpClientUsage {
    public void example() {
      CloseableHttpClient client = HttpClients.custom().build();
      RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory(client));
        }
    }

Więcej informacji na ten temat zawierają następujące zasoby: