血的教训 jdk 自带 HttpsURLConnection 访问https 时好时坏

来源:互联网 发布:下载牛股王软件 编辑:程序博客网 时间:2024/04/29 23:46


  jdk 自带 HttpsURLConnection 访问https 时好时坏  解决方案

  private static class TrustAnyTrustManager implements X509TrustManager {        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {        }        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {        }        public X509Certificate[] getAcceptedIssuers() {            return new X509Certificate[]{};        }    }    public static void main(String[] args) throws Exception {        String url = "https://www.baidu.com/";        URL url1 = new URL(url);        URLConnection conn = url1.openConnection();        if (conn instanceof HttpsURLConnection) {            SSLContext sc = SSLContext.getInstance("SSL");            sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());            ((HttpsURLConnection) conn).setSSLSocketFactory(sc.getSocketFactory());            ((HttpsURLConnection) conn).setHostnameVerifier(new TrustAnyHostnameVerifier());        }        InputStream inputStream = conn.getInputStream();        System.out.println(inputStream.available());    }