java httpget在“执行”之后不工作
我的程序应该去一个网站,根据id(4e3f2c6659f25a0f8400000b),它将得到一个json字符串。由于某些原因,此程序将无法通过客户端。执行第行并抛出IOException。此功能适用于需要从网站提取信息的其他程序。如果您转到https://iphone-radar.com/accounts/4e3f2c6659f25a0f8400000b,您可以看到我要复制的行的类型。这是我的代码,我希望你能帮我找出发生这种情况的原因。多谢各位
public String getText(String uri) {
HttpClient client1 = new DefaultHttpClient();
HttpGet request = new HttpGet("https://iphone-radar.com/accounts/4e3f2c6659f25a0f8400000b");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
try {
String response_str = client1.execute(request, responseHandler);
return response_str;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "";
}
}
# 1 楼答案
当然,你应该提供stacktrace,但很可能你的手机不信任发布iphone雷达的CA。com的SSL证书:CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US。(它不在姜饼信托商店)
搜索以便找到如何将此证书添加到您的信任存储中,有多篇关于此的帖子
# 2 楼答案
似乎此异常与不受信任的证书有关。当您试图使用过期证书或自签名证书访问HTTPS时,会发生这种情况。在浏览器上,弹出窗口将显示询问我们是否信任。在应用程序的过程中,我们需要添加一些代码来忽略不受信任的SSL证书,或者更新JVM证书,以便它能够识别证书
参考:Disabling Certificate Validation in an HTTP Connection