Die Konfigurationsmethoden von HttpClient in Reactor Netty geben eine Referenz auf einen konfigurierten Client zurück. Wird dieses Ergebnis verworfen, behält die frühere Referenz ihre bisherigen Einstellungen.

Dieser Code erzeugt eine Proxy-Konfiguration und verliert sie anschließend:

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

Behalten Sie stattdessen die zurückgegebene Referenz:

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

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

Die Typen sind HttpClient und ProxyProvider aus Reactor Netty sowie WebClient und ReactorClientHttpConnector aus Spring. Auch eine Methodenkette direkt auf HttpClient.create() bewahrt die zurückgegebene Konfiguration. Für zulässige Anfragen über die öffentliche API liefert die HTTP-Proxy-Liste Kandidaten für Host und Port des Beispiels.

Dieselbe Prüfung gilt beim Setzen von Antwort-Timeouts oder der Behandlung von Weiterleitungen. Lesen Sie den Rückgabevertrag der Methode, statt anzunehmen, ein Setter verändere das ursprüngliche Objekt.

Verfolgen Sie außerdem, welche Referenz den Connector erreicht. Eine lokale Variable nach dem Erzeugen eines Connectors neu zuzuweisen ersetzt nicht den Client, den dieser Connector bereits erhalten hat.

Ähnliche Artikel