Java 在HtmlUnit中设置代理

Java 在HtmlUnit中设置代理,java,http,proxy,htmlunit,socks,Java,Http,Proxy,Htmlunit,Socks,我在htmlunit中使用代理,我的代理列表包含http和socks的混合,我不知道下一个要传递给htmlunit的代理是http还是socks类型,htmlunit会自动确定类型并使用适当的规则通过该代理进行连接吗?我制作了一个应用程序,该应用程序也使用混合代理,但这是很久以前的事了。在该版本的HtmlUnit中,需要明确告知代理是否为SOCKS,否则它会假定它是HTTP代理。我在变更日志中查看了一下,没有发现任何迹象表明这已经发生了变化,因此答案应该是否定的,如果您不告诉HtmlUnit代理

我在htmlunit中使用代理,我的代理列表包含http和socks的混合,我不知道下一个要传递给htmlunit的代理是http还是socks类型,htmlunit会自动确定类型并使用适当的规则通过该代理进行连接吗?

我制作了一个应用程序,该应用程序也使用混合代理,但这是很久以前的事了。在该版本的HtmlUnit中,需要明确告知代理是否为SOCKS,否则它会假定它是HTTP代理。我在变更日志中查看了一下,没有发现任何迹象表明这已经发生了变化,因此答案应该是否定的,如果您不告诉HtmlUnit代理是SOCKS,它将假定代理是HTTP

要检查代理的类型,可以使用以下内容:

SocketAddress addr = new InetSocketAddress("proxyAddress", port);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //or Proxy.Type.SOCKS
URL url = new URL("http://google.com");
URConnection conn = url.openConnection(proxy);

如果代码失败(即抛出异常),那么代理很可能是死机或死机。(HtmlUnit在第一种情况下无论如何都会抛出异常,或者如果您不确定代理是否处于活动状态,您可以使用Proxy.Type.SOCKS再次执行相同的测试。)

我制作了一个应用程序,该应用程序也使用了混合代理,但这是很久以前的事了。在该版本的HtmlUnit中,需要明确告知代理是否为SOCKS,否则它会假定它是HTTP代理。我在变更日志中查看了一下,没有发现任何迹象表明这已经发生了变化,因此答案应该是否定的,如果您不告诉HtmlUnit代理是SOCKS,它将假定代理是HTTP

要检查代理的类型,可以使用以下内容:

SocketAddress addr = new InetSocketAddress("proxyAddress", port);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //or Proxy.Type.SOCKS
URL url = new URL("http://google.com");
URConnection conn = url.openConnection(proxy);
如果代码失败(即抛出异常),那么代理很可能是死机或死机。(HtmlUnit在第一种情况下仍将引发异常,或者如果您不确定代理是否处于活动状态,则可以使用Proxy.Type.SOCKS再次执行相同的测试。)

签出

它讨论了设置代理的多种策略。它还提供了通过代理选择器为同一连接提供多个代理的选项

退房


它讨论了设置代理的多种策略。它还提供了通过代理选择器为同一连接提供多个代理的选项

另外两个答案是关于如何在Java程序中通用地使用代理,但它与HtmlUnit有点不同。在Java进程上设置代理不起任何作用;相反,您希望模拟浏览器使用代理

int myProxyPort=8080;
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8, "myproxyhost.com", myProxyPort);

另外两个答案是关于如何在Java程序中通用地使用代理,但它与HtmlUnit有点不同。在Java进程上设置代理不起任何作用;相反,您希望模拟浏览器使用代理

int myProxyPort=8080;
WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_8, "myproxyhost.com", myProxyPort);

此框架为您检测代理类型,并可以为您实例化具有正确Socks/Http/Https代理配置的HtmlUnit WebClient:


本质上,当为您维护代理列表时,它会自动执行试错方法。因此,您不必在自己的代码中担心这一点。

此框架为您检测代理类型,并可以为您实例化具有正确Socks/Http/Https代理配置的HtmlUnit WebClient:


本质上,当为您维护代理列表时,它会自动执行试错方法。因此,您不必在自己的代码中担心这一点。

在将代理类型与htmlunit一起使用之前,您知道如何检查代理类型吗?我只知道试错法;测试两者。我会在答案后面加一个例子。你知道在使用htmlunit之前如何检查代理类型吗?我只知道试错法;测试两者。我将在答案后面附上一个例子。