gen*_* b. 3 java apache-httpclient-4.x spring-boot apache-httpclient-5.x
我必须升级 Spring Boot 依赖项2.7.5 --> 3.0.2:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.0.2</version>
<relativePath />
</parent>
Run Code Online (Sandbox Code Playgroud)
当前引用了相对较新的pom.xml版本HttpClient4.5.3 :
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该代码使用的org.apache.http类现在在 Maven Build 上产生以下错误:
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
Run Code Online (Sandbox Code Playgroud)
--> 不兼容的类型:org.apache.http.impl.client.CloseableHttpClient 无法转换为 org.apache.hc.client5.http.classic.HttpClient
为了解决此错误,我将所有出现的替换org.apache.http为https://hc.apache.org/httpcomponents-client-5.2.x/migration-guide/migration-to-classic.html:org.apache.hc.httpclient5
import org.apache.hc.httpclient5.conn.ssl.SSLConnectionSocketFactory;
import org.apache.hc.httpclient5.conn.ssl.TrustSelfSignedStrategy;
import org.apache.hc.httpclient5.impl.client.CloseableHttpClient;
import org.apache.hc.httpclient5.impl.client.HttpClients;
import org.apache.hc.httpclient5.ssl.SSLContextBuilder;
Run Code Online (Sandbox Code Playgroud)
但现在错误是
包 org.apache.hc.httpclient5.conn.ssl 不存在。它无法解析 HC5 包。有小费吗?

注意:我还尝试将 HttpClient 依赖项替换为新的httpclient5依赖项,但这是相同的错误:
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
导入org.apache.hc.httpclient5.必须略有不同,如下所示:
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
import org.apache.hc.client5.http.ssl.TrustSelfSignedStrategy;
import org.apache.hc.core5.ssl.SSLContextBuilder;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
Run Code Online (Sandbox Code Playgroud)
而不是
import org.apache.hc.httpclient5.conn.ssl.SSLConnectionSocketFactory;
import org.apache.hc.httpclient5.conn.ssl.TrustSelfSignedStrategy;
import org.apache.hc.httpclient5.impl.client.CloseableHttpClient;
import org.apache.hc.httpclient5.impl.client.HttpClients;
import org.apache.hc.httpclient5.ssl.SSLContextBuilder;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8361 次 |
| 最近记录: |