SpringBoot系列 - 使用RestTemplate
public class RestClientConfig {
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
(clientHttpRequestFactory());
(new DefaultResponseErrorHandler());
return restTemplate;
}
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;
}
}