https 不检验证书
public RestTemplate restTemplateHttps() {
RestTemplate restTemplate = null;
try {
TrustStrategy acceptingTrustStrategy = (chain, authType) -> true;
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
HttpClientBuilder clientBuilder = HttpClients.custom();
CloseableHttpClient httpClient = clientBuilder.setSSLSocketFactory(sslsf).build();
HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
httpRequestFactory.setConnectionRequestTimeout(30000);
httpRequestFactory.setConnectTimeout(30000);
httpRequestFactory.setReadTimeout(30000);
httpRequestFactory.setHttpClient(httpClient);
restTemplate = new RestTemplate(httpRequestFactory);
//解决乱码
List<HttpMessageConverter<?>> httpMessageConverters = restTemplate.getMessageConverters();
httpMessageConverters.stream().forEach(httpMessageConverter ->{
if(httpMessageConverter instanceof StringHttpMessageConverter){
StringHttpMessageConverter messageConverter = (StringHttpMessageConverter)httpMessageConverter;
messageConverter.setDefaultCharset(Charset.forName("UTF-8"));
}
});
} catch (Exception e) {
e.printStackTrace();
}
return restTemplate;
}
模板一
private <R> R forwardGetRest(String url, Class<R> clazz) {
Assert.notNull(HTTP_HEADERS, "请设置 http headers");
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(HTTP_HEADERS);
RestTemplate restTemplate = restTemplateHttps();
HTTP_HEADERS.remove("postman-token");
HTTP_HEADERS.remove("host");
final ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
final String body = response.getBody();
if (clazz == String.class) {
return (R) body;
}
final R t;
try {
t = JSON.parseObject(body, clazz);
if (t == null) {
System.out.println(url);
}
} catch (JSONException e) {
}
return t;
}
模板二
private <T> T forward(String cookie, String url, HttpMethod method, Class<T> clazz) {
try {
// RestTemplate restTemplate = new RestTemplate();
RestTemplate restTemplate = restTemplateHttps();
HttpHeaders httpHeaders = new HttpHeaders();
// httpHeaders.add("Cookie", cookie);
// httpHeaders.add("x-requested-with", "XMLHttpRequest");
setHeader(cookie, httpHeaders);
HttpEntity<T> requestEntity = new HttpEntity<>(null, httpHeaders);
final ResponseEntity<T> exchange = restTemplate.exchange(url, method, requestEntity, clazz,
new HashMap<>());
return exchange.getBody();
} catch (Exception e) {
return null;
}
}