This commit is contained in:
鲨鱼
2025-01-06 21:57:57 +08:00
parent 25df074628
commit 210af1344e
6 changed files with 230 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
package com.ruoyi.cai.util;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import javax.net.ssl.SSLContext;
public class CustomHttpClient {
public static CloseableHttpClient createClient() throws Exception {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, (x509Certificates, s) -> true).build();
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
return HttpClients.custom().setSSLSocketFactory(sslSocketFactory).build();
}
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.util;
import org.apache.http.impl.client.CloseableHttpClient;
import org.springframework.http.client.BufferingClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
@@ -12,6 +14,7 @@ import java.util.List;
public class RestTemplateUtil {
public static RestTemplate restTemplate;
public static RestTemplate NO_SSL_REST_TEMPLATE;
static {
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
@@ -26,10 +29,34 @@ public class RestTemplateUtil {
converter.setDefaultCharset(StandardCharsets.UTF_8);
}
}
CloseableHttpClient httpClient = null;
try {
httpClient = CustomHttpClient.createClient();
HttpComponentsClientHttpRequestFactory requestFactoryNoSSL = new HttpComponentsClientHttpRequestFactory(httpClient);
requestFactoryNoSSL.setConnectTimeout(3000);
requestFactoryNoSSL.setReadTimeout(3000);
NO_SSL_REST_TEMPLATE = new RestTemplate(requestFactoryNoSSL);
List<HttpMessageConverter<?>> messageConvertersNoSSL = restTemplate.getMessageConverters();
for (HttpMessageConverter<?> messageConverter : messageConvertersNoSSL) {
if (messageConverter instanceof StringHttpMessageConverter) {
StringHttpMessageConverter converter = (StringHttpMessageConverter) messageConverter;
converter.setDefaultCharset(StandardCharsets.UTF_8);
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static RestTemplate getRest(){
return restTemplate;
}
public static RestTemplate getNoSSLRest(){
return NO_SSL_REST_TEMPLATE;
}
}