El mètode proxy de Reactor Netty retorna el client configurat
Conserveu l'HttpClient que retorna proxy() abans de passar-lo a ReactorClientHttpConnector; el client original no canvia.
Els mètodes de configuració d'HttpClient de Reactor Netty retornen una referència a un client configurat. Si descarteu aquest resultat, la referència anterior conserva la seva configuració prèvia.
Aquest codi crea una configuració de proxy i després la perd:
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
En lloc d'això, conserveu la referència retornada:
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Els tipus són HttpClient i ProxyProvider de Reactor Netty, més WebClient i ReactorClientHttpConnector de Spring. Encadenar mètodes directament des de HttpClient.create() és una altra manera de conservar la configuració retornada. Per a les peticions permeses a l'API pública, la llista de proxys HTTP ofereix candidats per a l'amfitrió i el port de l'exemple.
La mateixa comprovació s'aplica quan definiu temps d'espera de resposta o el tractament de redireccions. Llegiu el contracte de retorn del mètode en lloc de suposar que un setter modifica l'objecte original.
Seguiu també quina referència arriba al connector. Reassignar una variable local després de crear un connector no substitueix el client que el connector ja ha rebut.