Метад 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 ужо атрымаў.