如何通过代理从HTTPS URL获取数据?

时间:2011-05-17 08:54:58

标签: java sockets ssl proxy

我收到Connection timed out: connect

我的代码:

    System.setProperty("http.proxyHost", "proxy.mycompany.com");
    System.setProperty("http.proxyPort", "8080");

    String url = URL_BASE + "&limit=5";
    URL u = new URL(url);
    BufferedReader in = new BufferedReader(
            new InputStreamReader(
            u.openStream()));

    String inputLine;

    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);

    in.close();

2 个答案:

答案 0 :(得分:4)

如果您要在HTTPS上提取网址,则必须设置https.proxyHosthttps.proxyPort。请参阅Java Networking and Proxies上的文档,第2.2节。

System.setProperty("https.proxyHost", "proxy.mycompany.com");
System.setProperty("https.proxyPort", "8080");

假设端口proxy.mycompany.com上的8080也是HTTPS代理

答案 1 :(得分:1)

我建议您使用apache http commons httpclient获取内容。在那里,您可以在客户端上设置代理身份验证,而无需修改全局jvm属性。