Os métodos de configuración de HttpClient en Reactor Netty devolven unha referencia a un cliente configurado. Se descarta ese resultado, a referencia anterior conserva a súa configuración previa.

Este código crea unha configuración de proxy e despois pérdese:

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

No seu lugar, conserve a referencia devolta:

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

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

Os tipos son HttpClient e ProxyProvider de Reactor Netty, ademais de WebClient e ReactorClientHttpConnector de Spring. Encadear métodos directamente desde HttpClient.create() é outra forma de conservar a configuración devolta. Para as peticións permitidas á API pública, a lista de proxies HTTP ofrece candidatos para o host e o porto do exemplo.

A mesma comprobación aplícase ao definir tempos de espera de resposta ou o tratamento de redireccións. Lea o contrato de retorno do método en vez de supor que un setter modifica o obxecto orixinal.

Tamén cómpre rastrexar que referencia chega ao conector. Reasignar unha variable local despois de crear un conector non substitúe o cliente que ese conector xa recibiu.

Artigos relacionados