Java 仅在本地主机上忽略http.NoProxyHosts
为了调试,我在localhost:2080上运行了一个代理。我可以通过以下任一方式看到trafic通过我的代理:Java 仅在本地主机上忽略http.NoProxyHosts,java,http,proxy,localhost,Java,Http,Proxy,Localhost,为了调试,我在localhost:2080上运行了一个代理。我可以通过以下任一方式看到trafic通过我的代理: curl http://localhost:8888/stuff --proxy localhost:2080 curl http://some.server.com:8888/stuff --proxy localhost:2080 使用Spring应用程序或裸机,当我调用some.server.com时,我看到请求通过代理,但从来没有在localhost上,即使我将http.n
curl http://localhost:8888/stuff --proxy localhost:2080
curl http://some.server.com:8888/stuff --proxy localhost:2080
使用Spring应用程序或裸机,当我调用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
非代理主机的值?是的,谢谢您的询问。在我的问题中添加了相关的代码和输出。我通过实现一个简单的代理选择器(几行代码)使其正常工作,如果您需要示例,请告诉我。这对于fiddler等的本地流量跟踪非常有用。感谢您的帮助,但我最终使用了代理Vole