I metodi di configurazione di HttpClient in Reactor Netty restituiscono un riferimento a un client configurato. Se si scarta questo risultato, il riferimento precedente mantiene le impostazioni di prima.

Questo codice crea una configurazione proxy e poi la perde:

HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
    .host("proxy.example").port(8080));

Conservate invece il riferimento restituito:

client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
    .host("proxy.example").port(8080));

WebClient webClient = WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(client))
    .build();

I tipi sono HttpClient e ProxyProvider di Reactor Netty, oltre a WebClient e ReactorClientHttpConnector di Spring. Anche concatenare i metodi direttamente da HttpClient.create() conserva la configurazione restituita. Per le richieste consentite all'API pubblica, la lista di proxy HTTP fornisce candidati per host e porta dell'esempio.

Lo stesso controllo vale quando si impostano timeout di risposta o la gestione dei reindirizzamenti. Leggete il contratto di ritorno del metodo invece di supporre che un setter modifichi l'oggetto originale.

Seguite anche quale riferimento raggiunge il connector. Riassegnare una variabile locale dopo aver creato un connector non sostituisce il client che il connector ha già ricevuto.

Articoli correlati