HTTP Proxy configuration

如果您在代理后面,并且需要为 HTTP 出站适配器或网关配置代理设置,则可以应用两种方法之一。在大多数情况下,您可以依赖于控制代理设置的标准 Java 系统属性。否则,您可以显式配置用于 HTTP 客户机请求工厂实例的 Spring bean。

Standard Java Proxy configuration

您可以设置三个系统属性来配置 HTTP 协议处理程序使用的代理设置:

  • http.proxyHost: 代理服务器的主机名。

  • http.proxyPort: 端口号(默认值为 80)。

  • http.nonProxyHosts: 应直接到达而不经过代理的主机列表。这是一列表格,按 | 分隔。模式可能以 * 开头或结尾,表示通配符。与其中一个模式匹配的任何主机都是通过直接连接而不是代理来访问的。

对于 HTTPS,可以使用以下属性:

  • https.proxyHost: 代理服务器的主机名。

  • https.proxyPort: 端口号,默认值为 80。

有关更多信息,请参阅 [role="bare"][role="bare"]https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html

Spring’s SimpleClientHttpRequestFactory

如果您需要对代理配置进行更明确的控制,则可以使用 Spring 的 SimpleClientHttpRequestFactory 并配置其 proxy 属性,如下例所示:

<bean id="requestFactory"
    class="org.springframework.http.client.SimpleClientHttpRequestFactory">
    <property name="proxy">
        <bean id="proxy" class="java.net.Proxy">
            <constructor-arg>
                <util:constant static-field="java.net.Proxy.Type.HTTP"/>
            </constructor-arg>
            <constructor-arg>
                <bean class="java.net.InetSocketAddress">
                    <constructor-arg value="123.0.0.1"/>
                    <constructor-arg value="8080"/>
                </bean>
            </constructor-arg>
        </bean>
    </property>
</bean>