À l'aide de HttpProxy pour se connecter à un ordinateur hôte avec preemtive authentification
Je suis en utilisant HttpClient pour se connecter à un hôte qui nécessite BasicAUTH. Mais le proxy ne requiert pas d'authentification. J'ai configurer comme suit:
private final HttpClient httpClient; //Spring injected
Réglage 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);
}
Paramètre de proxy:
private void setProxy(final String proxyHost, final int proxyPort) {
hostConfiguration hostConfiguration = httpClient.getHostConfiguration();
hostConfiguration.setProxy(proxyHost, proxyPort);
}
Mais je reçois les mises en garde suivantes lors de l'exécution du code. Tout fonctionne, mais je veux me débarrasser de ces avertissements, ainsi (ou au moins de comprendre pourquoi ils s'affiche)
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
Des idées?
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de l'Apache site pour un proxy w/o pouvoirs:
http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientExecuteProxy.java
(À partir de http://hc.apache.org/httpcomponents-client-ga/examples.html)
Vous obtenez l'erreur parce que vous êtes de passage dans un nom d'utilisateur/mot de passe et de ne pas en avoir besoin.
L'AVERTIR des messages de l'enregistreur (http://hc.apache.org/httpcomponents-client-ga/logging.html) - selon la configuration de votre enregistreur vous pourrait ignorer que.
Avoir passé beaucoup trop de temps à traiter avec, essaie de faire une application Java traiter avec les serveurs proxy, je peux vous dire que l'utilisation d'un outil tel que Proxifier ( http://www.proxifier.com/ pour Mac OS X et Windows) ou CNTLM ( http://cntlm.sourceforge.net/) était beaucoup plus facile, plus souple, plus facile à déboguer, et gardait le code propre.