Reactor Netty's konfigurationsmetoder på HttpClient returnerer en reference til en konfigureret klient. Kaster du resultatet væk, beholder den tidligere reference sine gamle indstillinger.

Denne kode opretter en proxy-konfiguration og mister den derefter:

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

Behold i stedet den returnerede reference:

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

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

Typerne er Reactor Netty's HttpClient og ProxyProvider samt Springs WebClient og ReactorClientHttpConnector. Metodekædning direkte fra HttpClient.create() er en anden måde at beholde den returnerede konfiguration. Til tilladte offentlige API-kald leverer HTTP-proxy-listen kandidater til værten og porten i eksemplet.

Den samme kontrol gælder, når du sætter svar-timeouts eller håndterer omdirigeringer. Læs metodens returkontrakt i stedet for at antage, at en setter ændrer det oprindelige objekt.

Følg også med i, hvilken reference der når connectoren. At tildele en lokal variabel igen efter at have oprettet en connector erstatter ikke den klient, som connectoren allerede har modtaget.

Relaterede artikler