Nell'API Fluent di Apache HttpClient 5, la Request può scegliere un proxy mentre l'Executor fornisce il suo account. Esegui la richiesta tramite quell'oggetto con credenziali:

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 e Request provengono da org.apache.hc.client5.http.fluent; HttpHost da org.apache.hc.core5.http. Le variabili dell'account provengono dalla configurazione dell'applicazione.

I due usi del proxy descrivono intenzionalmente lo stesso host e la stessa porta. viaProxy sceglie la rotta, mentre auth registra le credenziali di quell'intermediario presso l'Executor. Se il risultato finale resta 407, confronta la rotta scelta con l'ambito delle credenziali.

Chiamare il comodo metodo execute di una Request separata userebbe un altro percorso di esecuzione. Mantieni l'Executor con credenziali collegato all'operazione, come nell'esempio, così il client che riceve la sfida ha l'account configurato.

L'esempio usa l'interfaccia password char-array di 5.x. I vecchi frammenti HttpClient 4 Fluent usano pacchetti e firme dei metodi diversi. Al termine della richiesta, returnContent consuma l'entità della risposta e libera la connessione per il riutilizzo.

Articoli correlati