Http Client 进行HTTPS域名请求的时候遇到问题。请各位大神看下怎么解决。

jason_66 发布于 2018/04/19 11:32
阅读 467
收藏 0

如题, 这几天公司要求请求 一个 第三方API 获取某些数据,对好测试完毕之后丢到服务器线上环境run, 出现一个奇怪的问题, 一天总出现几次这个错误:javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
 

在百度 google 上查了大量资料 都说是 TLS 设置不对, 小弟不太懂这些,照猫画虎找了段代码放上去想看看效果, 结果还是偶发性的出现这个问题, 按照我想, TLS 不对 ,为什么不会一直都是这个错误, 而是偶发性的呢?有时候又是成功的。

OSCHINA的各位同僚大神如果有遇到上述情况的,麻烦指点一下,谢谢。

附上之前网上找的方案代码:
 

public class SSLClient extends DefaultHttpClient{
    public SSLClient(){
        super();
        try{
                SSLContext ctx = SSLContext.getInstance("TLS");
                X509TrustManager tm = new X509TrustManager() {              
                    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {   
                        
                    }               
                    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {    
                        
                    }               
                    public X509Certificate[] getAcceptedIssuers() {
                            return null;
                    }
                };
                ctx.init(null, new TrustManager[]{tm}, null);
                SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
                ClientConnectionManager ccm = this.getConnectionManager();
                SchemeRegistry sr = ccm.getSchemeRegistry();
                sr.register(new Scheme("https", 443, ssf));
        }catch(Exception e){
            e.printStackTrace();
        }
      
    }
}

 

加载中
0
鹞之神乐
鹞之神乐

用Jsoup请求吧!这个简单,加上这个方法就可以了应该,顺便安利一下https://gitee.com/Kagura/HttpRaw2Jsoup

.validateTLSCertificates(false)
0
whaiyang
whaiyang

请问楼主怎么解决的?

返回顶部
顶部