Proxy-metoden i Reactor Netty returnerer den konfigurerte klienten
Behold HttpClient-objektet som proxy() returnerer, før du sender det til ReactorClientHttpConnector; den opprinnelige klienten er uendret.
Konfigurasjonsmetodene til HttpClient i Reactor Netty returnerer en referanse til en konfigurert klient. Kastes resultatet, beholder den tidligere referansen de tidligere innstillingene.
Dette oppretter en proxy-konfigurasjon og mister den etterpå:
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
Behold den returnerte referansen i stedet:
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Typene er Reactor Nettys HttpClient og ProxyProvider, i tillegg til Springs WebClient og ReactorClientHttpConnector. Metodekjeding direkte fra HttpClient.create() er en annen måte å beholde den returnerte konfigurasjonen. For tillatte offentlige API-forespørsler gir HTTP-proxylisten kandidater for host og port i eksempelet.
Den samme kontrollen gjelder når du setter responstimeouts eller håndtering av omdirigeringer. Les returkontrakten til metoden i stedet for å anta at en setter muterer det opprinnelige objektet.
Spor også hvilken referanse som når connectoren. Å tilordne en lokal variabel på nytt etter at connectoren er bygget, erstatter ikke klienten connectoren allerede har mottatt.