如何在java中使用Http,Socks4和Socks5代理?

时间:2010-01-16 15:50:44

标签: java proxy httprequest

我想屏幕抓一个网站,为此我想使用Http,Socks4和Sock5代理。所以我的问题如下:

  1. 是否可以在不使用任何其他外部API的情况下通过Java使用这些代理?例如,是否可以通过HttpURLConnection通过这些代理发送请求?

  2. 如果不可能,那么我可以使用哪些其他外部API?

  3. 我是通过使用HtmlUnit提供的无头浏览器来实现的,但是加载甚至简单的网页也需要时间,所以你能不能建议我提供无头浏览器的其他API(如果有的话)快速加载网页。我不想打开包含大量AJAX或Javascript代码的网页。我只需要通过无头浏览器点击表单按钮。

2 个答案:

答案 0 :(得分:3)

  

是否可以在不使用任何其他外部API的情况下通过Java使用这些代理?例如,是否可以通过HttpURLConnection通过这些代理发送请求?

是的,您可以通过使用(全局)系统属性,使用Proxy类或使用ProxySelector来配置代理。从Java 5开始,后两个选项可用,并且更灵活。看看jarnbjo提到的Java Networking and Proxies的所有细节。

  

我是通过使用HtmlUnit提供的无头浏览器来实现的,但是加载甚至简单的网页也需要时间,所以你能不能建议我提供其他API(如果有的话)来提供快速加载网页的无头浏览器。我不想打开包含大量AJAX或Javascript代码的网页。我只需要通过无头浏览器点击表单按钮。

不幸的是,我能想到的第一个选择是基于HtmlUnit(如JWebUnitWebTest)或更慢(SeleniumWebDriver - 您可以在无头模式)。但是,如果您不需要高级JavaScript支持,也许可以尝试HttpUnit

答案 1 :(得分:1)

是的,这是可能的。您可以找到不同网络代理here的配置选项。