Os métodos de configuração do HttpClient no Reactor Netty retornam uma referência ao cliente configurado. Descartar esse resultado deixa a referência anterior com as configurações anteriores.

Isto cria uma configuração de proxy e depois a perde:

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

Em vez disso, guarde a 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();

Os tipos são HttpClient e ProxyProvider do Reactor Netty, além de WebClient e ReactorClientHttpConnector do Spring. O encadeamento de métodos diretamente a partir de HttpClient.create() é outra forma de manter a configuração retornada. Para requisições permitidas a APIs públicas, a lista de proxies HTTP fornece candidatos para o host e a porta do exemplo.

A mesma verificação vale ao definir timeouts de resposta ou tratamento de redirecionamentos. Leia o contrato de retorno do método em vez de presumir que um setter altera o objeto original.

Também rastreie qual referência chega ao conector. Reatribuir uma variável local depois de construir o conector não substitui o cliente que o conector já recebeu.

Artigos relacionados