HttpURL使用代理连接到HTTP

时间:2018-12-11 09:27:15

标签: java https proxy

我想连接到Java中需要代理的https:// URL。

我的系统中有2个代理:

HTTP  -> proxy.teatre.guerrilla:8080
HTTPS -> proxy.teatre.guerrilla:8443

我尝试过

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.teatre.guerrilla", 8080));

URL url = new URL ( urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(proxy);

但是我有一个Exception in thread "main" java.net.ConnectException: Connection timed out: connect

我还没有看到类型Proxy.Type.HTTPS

我也尝试过

System.setProperty("http.proxyHost", "proxy.teatre.guerrilla");
System.setProperty("http.proxyPort", "8080");

System.setProperty("https.proxyHost", "proxy.teatre.guerrilla");
System.setProperty("https.proxyPort", "8443");

具有相同的结果。

我还尝试将其添加为Program参数和VM参数。...

-Dhttp.proxyHost=proxy.teatre.guerrilla -Dhttp.proxyPort=8800 -Dhttps.proxyHost=proxy.teatre.guerrilla -Dhttps.proxyPort=8443

2 个答案:

答案 0 :(得分:0)

最好不要在代码中包含代理处理。您永远不会知道您的JAVA应用程序将在哪种环境中运行。因此,请使用以下JVM参数配置PROXY设置:How do I set the proxy to be used by the JVM

答案 1 :(得分:0)

请尝试

System.setProperty("http.proxyHost", "proxy.teatre.guerrilla");
System.setProperty("http.proxyPort", 8080);