La méthode proxy de Reactor Netty renvoie le client configuré
Conservez le HttpClient renvoyé par proxy() avant de le passer à ReactorClientHttpConnector ; le client d'origine reste inchangé.
Les méthodes de configuration d'HttpClient dans Reactor Netty renvoient une référence vers un client configuré. Si vous jetez ce résultat, la référence précédente garde ses réglages antérieurs.
Ce code crée une configuration de proxy puis la perd :
HttpClient client = HttpClient.create();
client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
Conservez plutôt la référence renvoyée :
client = client.proxy(spec -> spec.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient webClient = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
Les types sont HttpClient et ProxyProvider de Reactor Netty, ainsi que WebClient et ReactorClientHttpConnector de Spring. Enchaîner les méthodes directement depuis HttpClient.create() est une autre façon de conserver la configuration renvoyée. Pour les requêtes autorisées vers l'API publique, la liste de proxys HTTP fournit des candidats pour l'hôte et le port de l'exemple.
Le même contrôle vaut pour le réglage des délais de réponse ou du traitement des redirections. Lisez le contrat de retour de la méthode au lieu de supposer qu'un setter modifie l'objet d'origine.
Suivez aussi quelle référence atteint le connecteur. Réaffecter une variable locale après avoir créé un connecteur ne remplace pas le client que ce connecteur a déjà reçu.