我正在使用HttpClient连接到需要BasicAUTH的主机。但代理不需要任何身份验证。我已经将它设置如下:使用HttpProxy连接到具有预先认证的主机
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
任何想法?
您是否考虑过我通过代理连接的主机确实需要我设置BasicAUTH进行身份验证?这个例子看起来很好,但我的问题是,代理不需要身份验证,但我代理的主机却可以。这似乎是我错误地配置了一些东西,因为代理假定我希望它使用BasicAUTH参数。 – 2011-04-16 01:34:45