如何使用Spring 5 WebClient支持HTTP代理?

时间:2017-10-27 16:51:03

标签: spring-webflux

我正在使用Spring 5 WebClient。我想知道是否可以将其配置为使用HTTP代理,或者是否有一种方法可以更改它的默认配置。

2 个答案:

答案 0 :(得分:15)

这是底层客户端库应该支持的东西。

使用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();

答案 1 :(得分:0)

“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();