使用spring-boot指定http代理

时间:2015-11-27 06:11:41

标签: spring-boot

如何在运行spring-boot fat war作为tomcat服务器时指定要使用的http代理?

我尝试过以下无效的工作。

java -jar my-application.war --http.proxyHost=localhost --http.proxyPort=3128 --https.proxyHost=localhost --https.proxyPort=3128

java -jar my-application.war -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128

4 个答案:

答案 0 :(得分:8)

我发现我需要-Dhttps.proxySet = true才能实际使用代理配置。

答案 1 :(得分:2)

将JVM选项放在-jar之前。这应该有效:

java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128 -jar my-application.war

<强>解释

根据java command-line documentation,命令的语法是:

java [ options ] -jar file.jar [ arguments ]

arguments是您args中收到的main(String[] args)。因此,以某种方式使用它们完全是您的责任。如果你使用SpringApplication.run(MyApplication.class, args);将它们转发到春季,那么你需要找到一个文档,说明spring如何在args方法中使用run

然而,options不会发送到您的应用。他们的一个用途是使用system properties设置java调用-Dproperty=value的内容。根据{{​​3}},设置(例如http.proxyHost属性会使JVM代理通过该主机发出所有http请求。

答案 2 :(得分:0)

您可以在application.properties中配置REMOTE DEVTOOLS(RemoteDevToolsProperties)的所有属性。

spring.devtools.remote.context-path=  # Context path used to handle the remote connection.
spring.devtools.remote.proxy.host= # The host of the proxy to use to connect to the remote application.
spring.devtools.remote.proxy.port= # The port of the proxy to use to connect to the remote application.
spring.devtools.remote.restart.enabled=true # Whether to enable remote restart.
spring.devtools.remote.secret= # A shared secret required to establish a connection (required to enable remote support).  
spring.devtools.remote.secret-header-name=X-AUTH-TOKEN # HTTP header used to transfer the shared secret.

答案 3 :(得分:0)

需要添加以验证代理服务器

-Dhttp.proxyUser=**username**
-Dhttp.proxyPassword=**password**