Proxy-authenticatie in Apache HttpClient 5 Fluent met Executor
Koppel de viaProxy-route van een Fluent Request aan de inloggegevens op zijn Apache HttpClient 5 Executor.
In de Fluent API van Apache HttpClient 5 kan de Request een proxy kiezen terwijl de Executor zijn account levert. Voer het verzoek uit via dat object met inloggegevens:
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 en Request komen uit org.apache.hc.client5.http.fluent; HttpHost uit org.apache.hc.core5.http. De accountvariabelen komen uit de configuratie van de applicatie.
De twee toepassingen van proxy beschrijven opzettelijk dezelfde host en poort. viaProxy kiest de route, terwijl auth de inloggegevens voor die tussenpersoon bij de Executor registreert. Als het eindresultaat 407 blijft, vergelijk dan de gekozen route met het bereik van de inloggegevens.
Het aanroepen van de gemakkelijke execute-methode van een aparte Request zou een ander uitvoeringspad gebruiken. Houd de Executor met inloggegevens aan de bewerking gekoppeld, zoals in het voorbeeld, zodat de client die de uitdaging ontvangt het geconfigureerde account heeft.
Het voorbeeld gebruikt de char-array-wachtwoordinterface van 5.x. Oudere HttpClient 4 Fluent-fragmenten gebruiken andere pakketten en methodehandtekeningen. Wanneer het verzoek is voltooid, verbruikt returnContent de responsentiteit en geeft de verbinding vrij voor hergebruik.