Mit HttpProxy Verbindung zu einem host mit preemtive-Authentifizierung
Bin ich mit HttpClient eine Verbindung zu einem host erfordert BasicAUTH. Aber der proxy nicht die eine Authentifizierung erfordern. Ich habe es eingerichtet, wie folgt:
private final HttpClient httpClient; //Spring injected
Einstellung 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);
}
Einstellung proxy:
private void setProxy(final String proxyHost, final int proxyPort) {
hostConfiguration hostConfiguration = httpClient.getHostConfiguration();
hostConfiguration.setProxy(proxyHost, proxyPort);
}
Aber ich bekomme folgende Warnungen, wenn der code ausgeführt wird. Alles funktioniert, aber ich möchte, um loszuwerden, die Warnungen, wie gut (oder zumindest zu verstehen, warum Sie angezeigt wird)
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
Irgendwelche Ideen?
InformationsquelleAutor Espen Herseth Halvorsen | 2011-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ein Beispiel aus der Apache-Website für einen proxy-w/o-Anmeldeinformationen:
http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientExecuteProxy.java
(Aus http://hc.apache.org/httpcomponents-client-ga/examples.html)
Bekommen Sie die Fehlermeldung, weil Sie auf der Durchreise sind, in eine Benutzername/Passwort und müssen das nicht.
Die WARN-Meldungen kommen aus dem logger (http://hc.apache.org/httpcomponents-client-ga/logging.html) - je nachdem, wie Sie Ihre logger einrichten Sie könnte einfach ignorieren.
Verbracht und viel zu viel Zeit, die sich mit versuchen, um eine Java-Anwendung, Umgang mit proxy-Servern, ich kann Ihnen sagen, dass Sie mit einem tool wie Proxifier ( http://www.proxifier.com/ für Mac OS X und Windows) oder CNTLM ( http://cntlm.sourceforge.net/) war viel einfacher, flexibler, einfacher zu Debuggen, und hielt den code rein.
Der proxy behandelt werden soll durch dieses Beispiel. Das Grundlegende Ziel sollte sein bedeckt in diesem Beispiel hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/... Sie sollten in der Lage sein, um die beiden zu verbinden - oder, wenn Sie mit Proxifier (empfohlen), benötigen Sie nur noch dieses (zweiten) ein-und Java-code nicht brauchen, um über den proxy überhaupt.
InformationsquelleAutor Will Iverson