【发布时间】:2018-04-09 08:25:16
【问题描述】:
我正在使用 Spring 5 WebClient。我想知道是否可以将其配置为使用 HTTP 代理,或者是否有办法更改其默认配置。
【问题讨论】:
标签: spring-webflux
我正在使用 Spring 5 WebClient。我想知道是否可以将其配置为使用 HTTP 代理,或者是否有办法更改其默认配置。
【问题讨论】:
标签: spring-webflux
这是底层客户端库应该支持的东西。
使用 Reactor Netty 时,您可以执行以下操作:
HttpClient httpClient = HttpClient.create()
.tcpConfiguration(tcpClient ->
tcpClient.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP).host("myproxyhost")));
ReactorClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);
WebClient client = WebClient.builder().clientConnector(connector).build();
【讨论】:
host("myproxyhost")之后如果你有端口号别忘了放。否则它不起作用。 host("myproxyhost").port(portnumber).
“tcpConfiguration”已弃用。 所以改用这部分代码。
HttpClient httpClient =
HttpClient.create()
.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
.host(sasConfig.getProxyHost())
.port(Integer.parseInt(sasConfig.getProxyPort())));
ReactorClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);
WebClient webClient = WebClient.builder().clientConnector(connector).build();
【讨论】:
failure when writing TLS control frames; nested exception is javax.net.ssl.SSLException: failure when writing TLS control frames我该如何解决这个问题?