O método proxy do Reactor Netty retorna o cliente configurado
Guarde o HttpClient retornado por proxy() antes de passá-lo ao ReactorClientHttpConnector; o cliente original não muda.
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.