SpringBoot系列 - 使用RestTemplate

时间:2025-04-27 20:00:36
@Configuration public class RestClientConfig { @Bean public RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); (clientHttpRequestFactory()); (new DefaultResponseErrorHandler()); return restTemplate; } @Bean public HttpComponentsClientHttpRequestFactory clientHttpRequestFactory() { try { HttpClientBuilder httpClientBuilder = (); SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { public boolean isTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { return true; } }).build(); (sslContext); HostnameVerifier hostnameVerifier = ; SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, hostnameVerifier); Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() .register("http", ()) .register("https", sslConnectionSocketFactory).build();// 注册http和https请求 // 开始设置连接池 PoolingHttpClientConnectionManager poolingHttpClientConnectionManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry); (500); // 最大连接数500 (100); // 同路由并发数100 (poolingHttpClientConnectionManager); (new DefaultHttpRequestRetryHandler(3, true)); // 重试次数 HttpClient httpClient = (); HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient); // httpClient连接配置 (20000); // 连接超时 (30000); // 数据读取超时时间 (20000); // 连接不够用的等待时间 return clientHttpRequestFactory; } catch (KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) { ("初始化HTTP连接池出错", e); } return null; } }