我从HTTPS获得Json响应并获得异常
javax.net.ssl.SSLException: Not trusted server certificate
下面是我的代码我是否尝试使用HttpGet或HttpPost我在行中获得异常
HttpResponse httpResponse = httpClient.execute(request);
以下是从网址获取数据的代码。
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost request = new HttpPost(urlString);
HttpResponse httpResponse = httpClient.execute(request);
希望得到这个问题的答案。感谢。
答案 0 :(得分:0)
错误表示无法建立服务器证书的有效性。可能有几个原因,例如,受信任的根证书不可用。
您可以从浏览器连接到该页面吗?
答案 1 :(得分:0)
在为我的学校开发应用程序时遇到了类似的问题。诀窍是创建两个覆盖证书验证的类。一个扩展HostnameVerifier
并在每次调用verify()
时返回true,如t this。其他class extends X509TrustManager
并覆盖getAcceptedIssuers()
,如this。
然后,您可以使用此代码将HttpsURLConnection设置为接受所有证书
HttpsURLConnection.setDefaultHostnameVerifier(new AllVerifier());
try
{
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, new TrustManager[] { new AllTrustManager() }, null);
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
} catch (KeyManagementException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
这应该可以解决问题。你可以在run()方法中看到我如何使用this代码。