我正在使用HTMLUnit并希望使用代理服务器。我对此并不是很了解,但我认为http://proxylist.hidemyass.com/中列出的其中一台服务器可以正常工作。
这是我的代码:
public class App {
public static void main(String[] args) throws Exception {
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_31, "61.234.249.126", 8118);
HtmlPage page = webClient.getPage("http://www.google.com");
webClient.close();
System.out.println(page.asText());
}
}
I.P和端口是从这样的列表中随机挑选的 - 就像我和其他几个人一样。
但它最终说它超时了。我想并不是所有的代理服务器都能正常工作,但我已经用十几个地址完成了这项工作,所以我开始怀疑这是我的代码而不是服务器本身的问题。
我这样做了吗?
答案 0 :(得分:6)
WebClient.getOption()的配置为image。
ProxyConfig proxyConfig = new ProxyConfig("myhost", myport);
webClient.getOptions().setProxyConfig(proxyConfig);
答案 1 :(得分:1)
尝试使用System.setProperty()调用或使用命令行选项设置代理设置。
$ java -Dhttp.proxyHost=x.y.z.a -Dhttp.proxyPort=pppp
-Dhttp.nonProxyHosts=”localhost|host.example.com” your_main_class
或使用,System.setProperty(String, String)
调用以设置适当的值
答案 2 :(得分:0)
您的代码没有任何问题,连接超时取决于代理服务器的质量,尝试设置(大)超时并且大部分都可以正常工作
webClient.getOptions().setTimeout(15000);
答案 3 :(得分:0)
并非您找到的每个代理都足够快或提供您期望的回复。这是一个框架,允许您在代理列表上使用HtmlUnit,同时验证所使用的代理是否真正有效,结果是您实际预期的结果:https://github.com/subes/invesdwin-webproxy