În API-ul Fluent din Apache HttpClient 5, Request poate alege un proxy, iar Executor furnizează contul acestuia. Executați cererea prin acel obiect cu credențiale:

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 și Request provin din org.apache.hc.client5.http.fluent; HttpHost din org.apache.hc.core5.http. Variabilele contului provin din configurația aplicației.

Cele două utilizări ale proxy descriu intenționat același host și port. viaProxy alege ruta, iar auth înregistrează credențialele pentru acel intermediar în Executor. Dacă rezultatul final rămâne 407, comparați ruta selectată cu domeniul credențialelor.

Apelarea metodei execute convenabile a unui Request separat ar folosi altă cale de execuție. Păstrați Executorul cu credențiale atașat operațiunii, ca în exemplu, astfel încât clientul care primește provocarea să aibă contul configurat.

Exemplul folosește interfața de parolă char-array din 5.x. Fragmentele vechi HttpClient 4 Fluent folosesc alte pachete și semnături de metode. Când cererea se încheie, returnContent consumă entitatea răspunsului și eliberează conexiunea pentru reutilizare.

Articole similare