Proxy metoda u Reactor Nettyju vraća konfigurirani klijent
Zadržite HttpClient koji vraća proxy() prije nego ga predate u ReactorClientHttpConnector; izvorni klijent ostaje nepromijenjen.
Metode za konfiguraciju HttpClienta u Reactor Nettyju vraćaju referencu na konfigurirani klijent. Ako taj rezultat odbacite, prethodna referenca zadržava stare postavke.
Ovaj kod stvara proxy konfiguraciju i zatim je gubi:
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
Umjesto toga zadržite vraćenu referencu:
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Tipovi su Reactor Nettyjev HttpClient i ProxyProvider te Springov WebClient i ReactorClientHttpConnector. Lančano pozivanje metoda izravno na HttpClient.create() još je jedan način da sačuvate vraćenu konfiguraciju. Za dopuštene zahtjeve prema javnom API-ju popis HTTP proxyja nudi kandidate za host i port iz primjera.
Ista provjera vrijedi i kod postavljanja vremenskih ograničenja odgovora ili obrade preusmjeravanja. Pročitajte ugovor o povratnoj vrijednosti metode umjesto da pretpostavljate da setter mijenja izvorni objekt.
Pratite i koja referenca stiže do connectora. Ponovno dodjeljivanje lokalne varijable nakon stvaranja connectora ne zamjenjuje klijent koji je taj connector već primio.