Ist es möglich, zu vermeiden, dass das Aufrufen von Connect -HTTP -Proxy -Konfiguration bei der Verwendung von WebClientJava

Java-Forum
Guest
 Ist es möglich, zu vermeiden, dass das Aufrufen von Connect -HTTP -Proxy -Konfiguration bei der Verwendung von WebClient

Post by Guest »

Während der Migration von Spring-Web in Spring-Reactive-Web haben wir durch die Implementierung von HTTP-Proxy bei der Webclient Builder-Methode blockiert.

Wir haben bereits zuvor Code -Snippet ausprobiert. Auf Wie kann ich einen HTTP -Proxy mit Spring 5 WebClient unterstützen?

Code: Select all

WebClient.Builder currentWebClient = WebClient.builder();
if (StringUtils.isNotBlank(customRequest.getConnectionMap().get(GatewayConstants.PROXY_HOST))) {
HttpClient httpClient = HttpClient.create()
.tcpConfiguration(tcpClient ->
tcpClient.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP).host(customRequest.getConnectionMap().get(GatewayConstants.PROXY_HOST)).port(Integer.valueOf(customRequest.getConnectionMap().get(GatewayConstants.PROXY_PORT)))));
ReactorClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);
currentWebClient = currentWebClient.clientConnector(connector);
}
< /code>

Für den genannten Code, der für die TLS -Aktivierung der Proxy -Unterstützung erforderlich ist. Es wird versucht, eine Verbindung mithilfe der HTTP-Connect-Methode herzustellen, und für unseren Fall erhalten wir Status: 403 Forbidden 
, da wir vorerst keine HTTPS-Unterstützung haben. Um HTTPS -Funktionen von httpclient zu deaktivieren, habe ich sogar nossl () < /code> ausprobiert, aber es funktioniert bei mir nicht, < /p>

Code: Select all

HttpClient httpClient = HttpClient.create()
.tcpConfiguration(tcpClient ->
tcpClient
.noSSL()
...
< /code>

Egal ob ich versuche, das SSL -Teil von dem HTTP -Client zu aktivieren oder zu deaktivieren. Die Zeitleiste der Netzwerkaktivität sieht gleich aus. Ich meine für alle Fälle, die sie auf die HTTP -Verbindungsmethode aufrufen, wenn i Verwenden Sie einen Proxy. p>

Unter dem Code, der gut aussieht, und uns helfen, APIs nett zu rufen, aber keine Standardmethode für den Associate http_proxy (ohne HTTP Connect -Methode -Aufruf) < /Code> Konfiguration damit. < /p>

WebClient.Builder currentWebClient = WebClient.builder();

Mono response = WebClient.builder().build()
.method(HttpMethod.GET)
.uri(url)
.exchange()
.flatMap(r -> r.bodyToMono(String.class).flatMap(b -> {
customHttpResponse.setBodyMap(convertToMap(customRequest, b));
return Mono.just(customHttpResponse);
}))
.timeout(Duration.ofMillis(10000))
.doOnRequest(r -> logger.info("BACKEND_CALL start"))
.doOnError(r -> logger.info("BACKEND_CALL ERROR"));
< /code>

Hier suchen wir nach einer Standardmethode zur Implementierung des HTTP -Anrufmechanismus für
GET
, post , put und löschen http-Methoden mit Webclient, die domänenspezifische Socket_Timeout , Connection_Timeout , http_proxy (ohne HTTP Connect-Methode-Anruf) berücksichtigen , Anzahl der Wiederholung für einen Back-End-Aufruf. />

Code: Select all

Gradle: org.springframework:spring-web:5.1.7.RELEASE


Bitte zögern Sie nicht, unten zu kommentieren, wenn Sie weitere Abfragen haben, die dafür relevant sind.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post