原因

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();
    }
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐