import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
@Configuration
@Profile("dev")
public class RestTemplateConfigurationDev {
@Bean
public RestTemplate getRestTemplate() {
CloseableHttpClient httpClient = HttpClients.custom().setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build();
HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
requestFactory.setConnectTimeout(30000);
requestFactory.setReadTimeout(30000);
requestFactory.setConnectionRequestTimeout(30000);
return new RestTemplate(requestFactory);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,
requestFactory.setHttpClient(httpClient)
升级到最新的 Spring Boot 版本后,此方法不接受 CloseableHttpClient 对象。
requestFactory.setReadTimeout(30000);
虽然此方法已被弃用。
有人知道如何在 Spring Boot 3.0 中解决这些问题吗?
小智 5
尝试导入较新版本的 HttpClient,例如 Http5 客户端。这种依赖性应该可以解决您的问题。
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是,一旦您发布问题,请使用正确的格式。
| 归档时间: |
|
| 查看次数: |
24334 次 |
| 最近记录: |