我在本地主机上运行一个代理服务器,用于调试目的。我可以使用以下任一方式查看通过我的代理传输的流量:
curl http://localhost:8888/stuff --proxy localhost:2080
curl http://some.server.com:8888/stuff --proxy localhost:2080
使用Spring应用程序或一个简单的 HttpURLConnectionExample Java应用程序,当我调用
some.server.com
时,我看到请求通过代理进行,但从未在localhost
上进行,即使我将http.nonProxyHosts
设置为随机值(以避免默认值localhost
)。我确保我的JVM参数被考虑在内,添加了以下代码:
System.out.println("java.version="+props.getProperty("java.version"));
System.out.println("http.proxyHost="+props.getProperty("http.proxyHost"));
System.out.println("http.proxyPort="+props.getProperty("http.proxyPort"));
System.out.println("http.nonProxyHosts="+props.getProperty("http.nonProxyHosts"));
这将产生以下输出:
java.version=1.8.0_131
http.proxyHost=localhost
http.proxyPort=2080
http.nonProxyHosts=dummy.snafu.com
https.proxyHost=localhost
https.proxyPort=2080
https.nonProxyHost=dummy.snafu.com
Testing 1 - Send Http GET request
Sending 'GET' request to URL : http://localhost:8888/stuff
Response Code : 200
hello
当使用以下JVM参数运行时,为什么发送到
localhost
的HTTP请求不会通过我的代理?
-Dhttp.proxyHost=localhost
-Dhttp.proxyPort=2080
-Dhttp.nonProxyHosts=dummy.snafu.com
nonProxyHosts
的值? - Malt