Методът proxy на Reactor Netty връща конфигурирания клиент
Запазете HttpClient, който proxy() връща, преди да го подадете на ReactorClientHttpConnector; оригиналният клиент остава непроменен.
Методите за конфигуриране на HttpClient в Reactor Netty връщат референция към конфигуриран клиент. Ако изхвърлите този резултат, предишната референция остава със старите си настройки.
Този код създава конфигурация за прокси и след това я губи:
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
Вместо това запазете върнатата референция:
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Типовете са HttpClient и ProxyProvider от Reactor Netty, както и WebClient и ReactorClientHttpConnector от Spring. Верижното извикване директно от HttpClient.create() е друг начин да запазите върнатата конфигурация. За разрешени заявки през публичен API списъкът с HTTP прокси предлага кандидати за хоста и порта от примера.
Същата проверка важи и при задаване на таймаути за отговор или обработка на пренасочвания. Четете договора за връщане на метода, вместо да предполагате, че setter променя оригиналния обект.
Проследете също коя референция стига до connector. Преназначаването на локална променлива след създаването на connector не заменя клиента, който connector вече е получил.