gpt4 book ai didi

java - 使用 Http 代理通过抢占式身份验证连接到主机

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

我正在使用 HttpClient 连接到需要 BasicAUTH 的主机。但代理不需要任何身份验证。我的设置如下:

private final HttpClient httpClient; // Spring injected

设置基本身份验证:

private void setBasicAuth(final String username, final String password) {
httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM), new UsernamePasswordCredentials(username, password));
httpClient.getParams().setAuthenticationPreemptive(true);
}

设置代理:

private void setProxy(final String proxyHost, final int proxyPort) {
hostConfiguration hostConfiguration = httpClient.getHostConfiguration();
hostConfiguration.setProxy(proxyHost, proxyPort);
}

但是我在运行代码时收到以下警告。一切正常,但我也想摆脱警告(或者至少了解它们出现的原因)

WARN  o.a.c.httpclient.HttpMethodDirector - Required proxy credentials not available for BASIC <any realm>@proxy.XXXXXX.no:3128
WARN o.a.c.httpclient.HttpMethodDirector - Preemptive authentication requested but no default proxy credentials available

有什么想法吗?

最佳答案

以下是来自 Apache 站点的没有凭据的代理示例:

http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientExecuteProxy.java

(来自 http://hc.apache.org/httpcomponents-client-ga/examples.html )

您收到错误是因为您传递了用户名/密码,但不需要这样做。

警告消息来自记录器 (http://hc.apache.org/httpcomponents-client-ga/logging.html) - 取决于您如何设置记录器,可以忽略它。

在尝试让 Java 应用程序处理代理服务器方面花费了太多时间,我可以告诉您,使用 Proxifier(http://www.proxifier.com/ 适用于 Mac OS X 和 Windows)或 CNTLM(http://cntlm.sourceforge.net/)等工具更容易、更灵活、更容易调试,并且保持代码干净。

关于java - 使用 Http 代理通过抢占式身份验证连接到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678000/

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