HttpComponentsClientHttpRequestFactory mostantól a Apache HttpClient 5

A Spring Framework 6-ban a támogatás a Apache HttpClient 4.x eltávolították a HttpComponentsClientHttpRequestFactory. Azokra az összetevőkre, amelyek erre a gyárra támaszkodnak, mint például a RestTemplate mostantól a Apache HttpClient 5.x, amely a org.apache.hc.* csomag.

A HttpClient 4.x osztályok, mint például CloseableHttpClient, HttpClient, RequestConfig, vagy HttpContext a org.apache.http.* csomagot a Spring 's HTTP ügyfél infrastruktúrán belül (beleértve a konstruktorokat, metódushívásokat vagy konfigurációkat, amelyekben a HttpComponentsClientHttpRequestFactory) fordítási hibákhoz vezethet, és frissíteni kell, hogy használja a HttpClient 5.x egyenértékűek.

Tekintse át a következő metódusokat és konstruktorokat a HttpComponentsClientHttpRequestFactory annak biztosítására, hogy ne hivatkozzanak a HttpClient 4.x API-kra:

A következő példa a jelzett érvénytelen használatot mutatja:


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));
        }
    }

A következő példa az érvényes migrált használatot mutatja:


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));
        }
    }

Az alábbi információforrások nyújtanak további tájékoztatást: