gpt4 book ai didi

java - HtmlUnit 代理问题

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:26 25 4
gpt4 key购买 nike

它是关于 WebDriver,特别是 HtmlUnitDriver 和 FirefoxWebDriver

我对 HtmlUnitDriver 和 FirefoxWebDriver 使用了相同的代理设置,但只有 FirefoxWebDriver 有效。

我从 HtmlUnitDriver 得到的是来自代理服务器的“访问被拒绝”。当我没有使用代理设置时,我得到了一个空白页。我认为这与用户名或密码没有任何关系,因为如果我没有设置用户名或密码,我也会得到同样的错误。

以下是我的代码,任何想法将不胜感激。谢谢!

public WebDriver createHtmlUnitWebDriver() {
HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver() {
@Override
protected WebClient modifyWebClient(WebClient client) {
client.setProxyConfig(new ProxyConfig(PROXY_HOST, PROXY_PORT));

DefaultCredentialsProvider credentialsProvider = new DefaultCredentialsProvider();
credentialsProvider.addCredentials("username", "password");
credentialsProvider.addProxyCredentials("username", "password", PROXY_HOST, PROXY_PORT);
client.setCredentialsProvider(credentialsProvider);

return client;
}
};

htmlUnitDriver.setProxy(PROXY_HOST, PROXY_PORT);
htmlUnitDriver.setJavascriptEnabled(true);

return htmlUnitDriver;
}

public WebDriver createFirefoxWebDriver() {
FirefoxProfile firefoxProfile = new FirefoxProfile();

firefoxProfile.setPreference("network.proxy.type", 1);
firefoxProfile.setPreference("network.proxy.http", PROXY_HOST);
firefoxProfile.setPreference("network.proxy.http_port", PROXY_PORT);
firefoxProfile.setPreference("network.proxy.ssl", PROXY_HOST);
firefoxProfile.setPreference("network.proxy.ssl_port", PROXY_PORT);
firefoxProfile.setPreference("network.proxy.no_proxies_on", "");

return new FirefoxDriver(firefoxProfile);
}

最佳答案

使用:

HtmlUnitDriver htmlUnitDriver = new HtmlUnitDriver();
htmlUnitDriver.get("http://www.google.com");

我可以看到代理详细信息已发送到底层 HttpClient(在 HttpWebConnection.getResponse() 中)方法。

您能否提供您的代理设置(如果是公开的),或者您可以尝试直接使用 HttpClient,看看它是否与您的代理不兼容?

P.S.:最好使用 HtmlUnit 用户列表,因为其他人可能也有兴趣提供帮助。

关于java - HtmlUnit 代理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com