YYC
2025-04-25 9cec6b5c40e716cba4ab687f1e8a61c9cd95b2d7
src/main/java/com/fzzy/conf/RestTemplateConfig.java
@@ -7,7 +7,12 @@
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
/**
 * RestTemplate的配置,SpringBoot封装的HTTP协议,GET和POST请求方法
@@ -19,8 +24,30 @@
public class RestTemplateConfig {
   @Bean
   public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
   public RestTemplate restTemplate(ClientHttpRequestFactory factory) throws Exception {
      RestTemplate restTemplate = new RestTemplate(factory);
      // 禁用SSL证书验证
      TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
         @Override
         public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
         }
         @Override
         public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
         }
         @Override
         public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
         }
      }};
      // 创建SSLContext,使用禁用SSL证书验证的TrustManager
      SSLContext sslContext = SSLContext.getInstance("SSL");
      sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
      // 设置全局默认的SSLSocketFactory,使RestTemplate使用禁用SSL证书验证的SSLContext
      HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
      restTemplate.getMessageConverters().set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));
      return restTemplate;
   }