如何在 java 中使用代理获取 URL 连接?
Posted
技术标签:
【中文标题】如何在 java 中使用代理获取 URL 连接?【英文标题】:How to get URL connection using proxy in java? 【发布时间】:2011-11-16 07:19:08 【问题描述】:我正在尝试在运行时使用代理创建 URL 连接。我的代码如下:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.0.2.100", 80));
HttpURLConnection connection =
(HttpURLConnection)new URL("http://abc.example.com").openConnection(proxy);
但这不起作用。有人知道为什么吗?
【问题讨论】:
什么不起作用?您收到 StackTrace 还是错误? 为什么它不起作用?错误是什么? 您使用的是什么类型的代理? 谢谢你们成功了。我需要配置连接请求。连接.setDoOutput(true); connection.setRequestProperty("内容类型", "text/xml"); connection.setRequestProperty("接受", "text/xml, application/xml"); connection.setRequestMethod("POST"); 您可以并且应该发布您的解决方案作为此问题的答案(您可以稍后接受)。 【参考方案1】:为未来的访客添加答案
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.0.2.100", 80));
HttpURLConnection connection =(HttpURLConnection)new URL("http://abc.example.com").openConnection(proxy);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Content-type", "text/xml");
connection.setRequestProperty("Accept", "text/xml, application/xml");
connection.setRequestMethod("POST");
【讨论】:
谢谢@dku.rajkumar,我如何在这里设置用户名和密码?【参考方案2】:dku.rajkumar 的方法对我不起作用。
我试试这个,它工作。但这需要双倍的时间。
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.0.2.100", 80));
HttpURLConnection connection =
(HttpURLConnection)new URL("http://abc.example.com").openConnection(proxy);
((HttpURLConnection)new URL("http://abc.example.com").openConnection(proxy)).getInputStream();
System.out.println(connection.usingProxy());
结果为真
没有
((HttpURLConnection)new URL("http://abc.example.com").openConnection(proxy)).getInputStream();
结果为假
【讨论】:
以上是关于如何在 java 中使用代理获取 URL 连接?的主要内容,如果未能解决你的问题,请参考以下文章