Метады канфігурацыі 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 ужо атрымаў.

Падобныя артыкулы