Использование HttpProxy для подключения к хосту с предварительной проверкой подлинности - PullRequest
1 голос
/ 15 апреля 2011

Я использую HttpClient для подключения к хосту, который требует BasicAUTH.Но прокси не требует никакой аутентификации.Я настроил его следующим образом:

private final HttpClient httpClient; // Spring injected

Настройка Basic auth:

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

Есть идеи?

1 Ответ

1 голос
/ 15 апреля 2011

Вот пример с сайта Apache для прокси без учетных данных:

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

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

Вы получаете ошибку, потому чтовы передаете имя пользователя / пароль и не нуждаетесь в этом.

Сообщения WARN поступают от регистратора (http://hc.apache.org/httpcomponents-client-ga/logging.html) - в зависимости от того, как вы настроили свой регистратор, вы могли бы просто игнорируйте это.

Потратив WAY слишком много времени на попытки заставить приложение Java работать с прокси-серверами, я могу вам сказать, что с помощью такого инструмента, как Proxifier (http://www.proxifier.com/ для MacOS X и Windows) или CNTLM (http://cntlm.sourceforge.net/) было намного проще, гибче, проще в отладке и содержало код в чистоте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...