Можно ли избежать вызова Connect Modiation HTTP -прокси -конфигурации при использовании WebClient?JAVA

Программисты JAVA общаются здесь
Anonymous
Можно ли избежать вызова Connect Modiation HTTP -прокси -конфигурации при использовании WebClient?

Сообщение Anonymous »

Во время миграции Spring-web в Spring-reactive-web мы заблокировали реализацией HTTP Proxy на методе Builder .

Мы уже пробовали ниже фрагмент кода ранее, на который ссылается, как я могу поддерживать прокси -сервер HTTP с помощью Spring 5 WebClient?. < /p>

Код: Выделить всё

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>

Для упомянутого фрагмента кода, необходимого для обеспечения поддержки прокси -сервера TLS. Он пытается установить соединение с использованием метода HTTP-Connect, и для нашего случая мы получаем статус: 403 FORBIDEN 
, поскольку у нас нет поддержки HTTPS. Чтобы отключить функции https от httpclient, я даже попробовал nossl () < /code>, но это не сработает для меня, < /p>

Код: Выделить всё

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

Независимо от того, что я пытаюсь включить или отключить часть SSL от клиента HTTP, временная шкала сетевой активности выглядит одинаково, я имею в виду для всех случаев, которые она вызывает метод http connect, когда я Используйте прокси. 

[i]  p>

ниже код выглядит хорошо и помогает нам вызвать API «Ницца», но не нашел никакого стандартного способа ассоциации http_proxy (без http connect method call) < /code> Конфигурация с ним. /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>

Здесь мы ищем стандартный способ реализации механизма вызова HTTP для
GET
, post , plot и delete методы HTTP с использованием WebClient с учетом специфического домена socket_timeout , connection_timeout , http_proxy (без вызова http connect call) , Количество retry для некоторого обратного вызова. />

Код: Выделить всё

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


Пожалуйста, не стесняйтесь комментировать ниже, если у вас есть какой -либо дальнейший запрос, относящийся к этому. [/i]

Подробнее здесь: https://stackoverflow.com/questions/582 ... tion-while

Вернуться в «JAVA»