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

Yat*_*oel 5 java proxy httprequest

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

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

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

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

Pas*_*ent 3

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

是的,您可以通过使用(全局)系统属性、使用类Proxy或使用ProxySelector. 后面的两个选项从 Java 5 开始就可用,并且更加灵活。查看jarnbjo 提到的Java Networking and Proxies了解所有详细信息。

我使用 HtmlUnit 提供的无头浏览器来完成此操作,但即使加载简单的网页也需要时间,所以您能否建议我提供其他可快速加载网页的无头浏览器的 API(如果有)。我不想打开包含大量 AJAX 或 Javascript 代码的网页。我只需要通过无头浏览器单击表单按钮即可。

不幸的是,我能想到的第一个替代方案要么是基于 HtmlUnit 的(如JWebUnitWebTest),要么是速度较慢的(SeleniumWebDriver - 您可以在无头模式下运行)。但如果您不需要高级 JavaScript 支持,也许您可​​以尝试HttpUnit 。