原因
https证书
请求为https
缺少安全证书认证
解决方式
若是内部调用,不担心安全问题则直接调整代码如下
httpclients的修改方式
// 修改HTTP client的创建方式
CloseableHttpClient httpClient = null;
// 创建Httpclient对象 actionUrl为请求全路径
if (actionUrl.startsWith(HTTPS)) {
// 创建一个SSL信任所有证书的httpClient对象
httpClient = HttpClientUtil.getSSLInsecure();
} else {
httpClient = HttpClients.createDefault();
}
getSSLInsecure为自定义方法 如下定义 放到同一类下即可
public static CloseableHttpClient createSSLInsecureClient() {
try {
SSLConnectionSocketFactory sslcsf = new SSLConnectionSocketFactory(
SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(),
NoopHostnameVerifier.INSTANCE);
return HttpClients.custom().setSSLSocketFactory(sslcsf).build();
} catch (Exception e) {
// 日志不需要可以换为 其他 如e.printStackTrace();
logger.error("createSSLInsecureClient方法出现异常", e);
}
return HttpClients.createDefault();
}