Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中从HTTPS url获取JSON响应时出现异常_Android_Json_Https - Fatal编程技术网

在Android中从HTTPS url获取JSON响应时出现异常

在Android中从HTTPS url获取JSON响应时出现异常,android,json,https,Android,Json,Https,我从HTTPS获得Json响应,并作为 javax.net.ssl.SSLException: Not trusted server certificate 下面是我的代码,无论我尝试使用HttpGet还是HttpPost,我都会在代码行中得到异常 HttpResponse httpResponse = httpClient.execute(request); 下面是从url获取数据的代码 DefaultHttpClient httpClient = new DefaultHttpClien

我从HTTPS获得Json响应,并作为

javax.net.ssl.SSLException: Not trusted server certificate
下面是我的代码,无论我尝试使用HttpGet还是HttpPost,我都会在代码行中得到异常

HttpResponse httpResponse = httpClient.execute(request);
下面是从url获取数据的代码

DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost request = new HttpPost(urlString);
        HttpResponse httpResponse = httpClient.execute(request);

希望得到这个问题的答案。谢谢。

此错误意味着无法确定服务器证书的有效性。这可能有几个原因,例如,受信任的根证书不可用


你能从浏览器连接到该页面吗?

我在为学校开发应用程序时遇到类似问题。诀窍是创建两个覆盖证书验证的类。一个扩展
HostnameVerifier
,并在每次调用
verify()
时返回true,如t。另一个
类扩展X509TrustManager
并重写
getAcceptedAssuers()

然后,您可以使用此代码将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()方法中看到我是如何使用代码的。

请参阅使用DefaultHttpClientnot json响应发出https请求。没有任何痕迹。您的服务器使用设备不信任的证书,这就是错误显示的内容。