使用volley链接Https地址时报SSLHandshakeException_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 使用volley链接Https地址时报SSLHandshakeException

使用volley链接Https地址时报SSLHandshakeException

 2018/8/21 15:22:37  gundumw100  程序员俱乐部  我要评论(0)
  • 摘要:在真实设备上出现以下错误︰Volleyerror:com.android.volley.NoConnectionError:javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:Trustanchorforcertificationpathnotfound.模拟器上没出现该错误。解决方法:在你的ApplicationonCreate方法中添加如下代码
  • 标签:使用 HTTP
在真实设备上出现以下错误

Volley error: com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.


模拟器上没出现该错误。


解决方法:
在你的Application onCreate方法中添加如下代码:
class="java" name="code">

/**
     * Enables https connections
     * https://www.itstrike.cn/Question/13b0aa2b-ce37-4243-a488-330980408a64.html
     */
    @SuppressLint("TrulyRandom")
    public static void handleSSLHandshake() {
        try {
            TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
                public X509Certificate[] getAcceptedIssuers() {
                    return new X509Certificate[0];
                }

                @Override
                public void checkClientTrusted(X509Certificate[] certs, String authType) {
                }

                @Override
                public void checkServerTrusted(X509Certificate[] certs, String authType) {
                }
            }};

            SSLContext sc = SSLContext.getInstance("SSL");
            sc.init(null, trustAllCerts, new SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
            HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String arg0, SSLSession arg1) {
                    return true;
                }
            });
        } catch (Exception ignored) {
        	
        }
    }


上一篇: java intern 下一篇: java中获取用户的真实ip
发表评论
用户名: 匿名