Los métodos de configuración de HttpClient en Reactor Netty devuelven una referencia a un cliente configurado. Si descarta ese resultado, la referencia anterior conserva su configuración previa.

Este código crea una configuración de proxy y luego la pierde:

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

En su lugar, conserve la referencia devuelta:

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

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

Los tipos son HttpClient y ProxyProvider de Reactor Netty, además de WebClient y ReactorClientHttpConnector de Spring. Encadenar métodos directamente desde HttpClient.create() es otra forma de conservar la configuración devuelta. Para las peticiones permitidas a la API pública, la lista de proxies HTTP aporta candidatos para el host y el puerto del ejemplo.

La misma comprobación se aplica al definir tiempos de espera de respuesta o el tratamiento de redirecciones. Lea el contrato de retorno del método en lugar de suponer que un setter modifica el objeto original.

También conviene rastrear qué referencia llega al conector. Reasignar una variable local después de crear un conector no sustituye al cliente que ese conector ya recibió.

Artículos relacionados