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
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
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.