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

How can I support an HTTP Proxy using Spring 5 WebClient?

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

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

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

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