忽略HTTPS校验

This commit is contained in:
pengjie 2024-04-25 10:44:50 +08:00
parent a25b8d3321
commit 2fb9c7df83

View File

@ -2,11 +2,15 @@ package com.zhgd.config;
import org.apache.http.Header; import org.apache.http.Header;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy; import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler; import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicHeader;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.ssl.TrustStrategy;
import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -16,7 +20,11 @@ import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import javax.net.ssl.SSLContext;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -45,7 +53,7 @@ public class RestTemplateConfig {
* @return HttpComponentsClientHttpRequestFactory * @return HttpComponentsClientHttpRequestFactory
*/ */
@Bean @Bean
public HttpComponentsClientHttpRequestFactory httpComponentsClientHttpRequestFactory() { public HttpComponentsClientHttpRequestFactory httpComponentsClientHttpRequestFactory() throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException {
//Httpclient连接池长连接保持30秒 //Httpclient连接池长连接保持30秒
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(30, TimeUnit.SECONDS); PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(30, TimeUnit.SECONDS);
@ -60,6 +68,9 @@ public class RestTemplateConfig {
headers.add(new BasicHeader("Accept-Encoding", "gzip, deflate")); headers.add(new BasicHeader("Accept-Encoding", "gzip, deflate"));
headers.add(new BasicHeader("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3")); headers.add(new BasicHeader("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3"));
headers.add(new BasicHeader("Connection", "keep-alive")); headers.add(new BasicHeader("Connection", "keep-alive"));
TrustStrategy acceptingTrustStrategy = (x509Certificates, authType) -> true;
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
SSLConnectionSocketFactory connectionSocketFactory = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier());
//创建HttpClient //创建HttpClient
HttpClient httpClient = HttpClientBuilder.create() HttpClient httpClient = HttpClientBuilder.create()
@ -67,6 +78,7 @@ public class RestTemplateConfig {
.setDefaultHeaders(headers) .setDefaultHeaders(headers)
.setRetryHandler(new DefaultHttpRequestRetryHandler(3, true)) //设置重试次数 .setRetryHandler(new DefaultHttpRequestRetryHandler(3, true)) //设置重试次数
.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy()) //设置保持长连接 .setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy()) //设置保持长连接
.setSSLSocketFactory(connectionSocketFactory)
.build(); .build();
//创建HttpComponentsClientHttpRequestFactory实例 //创建HttpComponentsClientHttpRequestFactory实例
@ -81,7 +93,6 @@ public class RestTemplateConfig {
requestFactory.setConnectionRequestTimeout(200); requestFactory.setConnectionRequestTimeout(200);
//缓冲请求数据默认为true通过POST或者PUT大量发送数据时建议将此更改为false以免耗尽内存 //缓冲请求数据默认为true通过POST或者PUT大量发送数据时建议将此更改为false以免耗尽内存
requestFactory.setBufferRequestBody(false); requestFactory.setBufferRequestBody(false);
return requestFactory; return requestFactory;
} }