Metóda proxy v Reactor Netty vracia nakonfigurovaného klienta
Zachovajte HttpClient, ktorý vracia proxy(), pred jeho odovzdaním do ReactorClientHttpConnector; pôvodný klient sa nemení.
Konfiguračné metódy HttpClient v Reactor Netty vracajú referenciu na nakonfigurovaného klienta. Ak sa tento výsledok zahodí, predchádzajúca referencia si ponechá predchádzajúce nastavenia.
Toto vytvorí konfiguráciu proxy a potom ju stratí:
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
Namiesto toho si ponechajte vrátenú referenciu:
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Typmi sú HttpClient a ProxyProvider z Reactor Netty a tiež WebClient a ReactorClientHttpConnector zo Springu. Reťazenie metód priamo od HttpClient.create() je ďalší spôsob, ako si vrátenú konfiguráciu ponechať. Pre povolené požiadavky na verejné API zoznam HTTP proxy poskytuje kandidátov pre host a port z príkladu.
Rovnaká kontrola platí pri nastavovaní časových limitov odpovede alebo spracovaní presmerovaní. Čítajte návratový kontrakt metódy namiesto toho, aby ste predpokladali, že setter mení pôvodný objekt.
Sledujte aj to, ktorá referencia sa dostane do konektora. Opätovné priradenie lokálnej premennej po vytvorení konektora nenahradí klienta, ktorého konektor už dostal.