有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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 "";

        }
    }

共 (2) 个答案

  1. # 1 楼答案

    当然,你应该提供stacktrace,但很可能你的手机不信任发布iphone雷达的CA。com的SSL证书:CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US。(它不在姜饼信托商店)

    搜索以便找到如何将此证书添加到您的信任存储中,有多篇关于此的帖子

  2. # 2 楼答案

    似乎此异常与不受信任的证书有关。当您试图使用过期证书或自签名证书访问HTTPS时,会发生这种情况。在浏览器上,弹出窗口将显示询问我们是否信任。在应用程序的过程中,我们需要添加一些代码来忽略不受信任的SSL证书,或者更新JVM证书,以便它能够识别证书

    参考:Disabling Certificate Validation in an HTTP Connection