Proxy-Authentifizierung in Apache HttpClient 5 Fluent mit Executor
Verbinden Sie die viaProxy-Route eines Fluent Request mit den Anmeldedaten auf seinem Apache HttpClient 5 Executor.
In der Fluent API von Apache HttpClient 5 kann der Request einen Proxy auswählen, während der Executor sein Konto liefert. Führen Sie die Anfrage über dieses Objekt mit den Anmeldedaten aus:
HttpHost proxy = new HttpHost("http", "proxy.example", 8080);
Executor executor = Executor.newInstance()
.auth(proxy, proxyUser, proxyPassword.toCharArray());
String body = executor.execute(
Request.get("https://www.example.com/").viaProxy(proxy))
.returnContent()
.asString();
Executor und Request stammen aus org.apache.hc.client5.http.fluent; HttpHost aus org.apache.hc.core5.http. Die Kontovariablen stammen aus der Konfiguration der Anwendung.
Die beiden Verwendungen des Proxy beschreiben absichtlich denselben Host und Port. viaProxy wählt die Route, während auth die Anmeldedaten für diesen Vermittler beim Executor registriert. Bleibt das Endergebnis 407, vergleichen Sie die gewählte Route mit dem Bereich der Anmeldedaten.
Der Aufruf der bequemen execute-Methode eines separaten Request würde einen anderen Ausführungspfad nutzen. Halten Sie den Executor mit Anmeldedaten wie im Beispiel an den Vorgang gebunden, damit der Client, der die Aufforderung erhält, das konfigurierte Konto besitzt.
Das Beispiel verwendet die char-array-Passwortschnittstelle von 5.x. Ältere HttpClient 4 Fluent-Snippets verwenden andere Pakete und Methodensignaturen. Nach Abschluss der Anfrage verbraucht returnContent den Antwortinhalt und gibt die Verbindung zur Wiederverwendung frei.