【问题标题】:Spring Boot 3 RestTemplate-HttpComponentsClientHttpRequestFactory incomaptible with org.apache.http.client.HttpClientSpring Boot 3 RestTemplate-HttpComponentsClientHttpRequestFactory 与 org.apache.http.client.HttpClient 不兼容
【发布时间】:2023-02-11 20:05:46
【问题描述】:
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);

“org.springframework.http.client.HttpComponentsClientHttpRequestFactory”中的“HttpComponentsClientHttpRequestFactory(org.apache.hc.client5.http.classic.HttpClient)”不能应用于“(org.apache.http.client.HttpClient)”

需要以任何其他替代方式解决此问题的解决方案。

构建包的HttpClient

import io.micrometer.core.instrument.binder.httpcomponents.PoolingHttpClientConnectionManagerMetricsBinder;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
HttpClient httpClient = HttpClientBuilder
        .create().setConnectionManager(connectionManager)
        .build();
new PoolingHttpClientConnectionManagerMetricsBinder(connectionManager, "my-pool").bindTo(registry);
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);

【问题讨论】:

    标签: spring spring-boot resttemplate spring-micrometer


    【解决方案1】:

    你应该使用依赖

    implementation 'org.apache.httpcomponents.client5:httpclient5'

    代替

    implementation 'org.apache.httpcomponents:httpclient'

    【讨论】: