Metodele de configurare ale HttpClient din Reactor Netty returnează o referință către clientul configurat. Dacă rezultatul este aruncat, referința anterioară rămâne cu setările anterioare.

Acest cod creează o configurare proxy și apoi o pierde:

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

În schimb, păstrați referința returnată:

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

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

Tipurile sunt HttpClient și ProxyProvider din Reactor Netty, plus WebClient și ReactorClientHttpConnector din Spring. Înlănțuirea metodelor direct din HttpClient.create() este o altă cale de a păstra configurarea returnată. Pentru cererile permise către API-uri publice, lista de proxy-uri HTTP oferă candidați pentru hostul și portul din exemplu.

Aceeași verificare se aplică la setarea time-out-urilor de răspuns sau la tratarea redirecționărilor. Citiți contractul de returnare al metodei în loc să presupuneți că un setter modifică obiectul original.

Urmăriți și ce referință ajunge la conector. Reatribuirea unei variabile locale după construirea conectorului nu înlocuiește clientul pe care conectorul l-a primit deja.

Articole similare