Metody konfiguracji HttpClient w Reactor Netty zwracają referencję do skonfigurowanego klienta. Odrzucenie tego wyniku pozostawia wcześniejszą referencję z wcześniejszymi ustawieniami.

Ten kod tworzy konfigurację proxy, a następnie ją traci:

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

Zamiast tego zachowaj zwróconą referencję:

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

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

Typy to HttpClient i ProxyProvider z Reactor Netty oraz WebClient i ReactorClientHttpConnector ze Springa. Łańcuch metod bezpośrednio od HttpClient.create() to inny sposób zachowania zwróconej konfiguracji. Dla dozwolonych żądań publicznego API lista proxy HTTP dostarcza kandydatów dla hosta i portu z przykładu.

Ta sama kontrola dotyczy ustawiania limitów czasu odpowiedzi lub obsługi przekierowań. Czytaj kontrakt zwracania metody, zamiast zakładać, że setter modyfikuje pierwotny obiekt.

Prześledź też, która referencja trafia do connectora. Ponowne przypisanie zmiennej lokalnej po utworzeniu connectora nie zastępuje klienta, który connector już otrzymał.

Powiązane artykuły