【发布时间】:2023-03-04 05:58:02
【问题描述】:
出于调试目的,我在 localhost:2080 上运行了一个代理。我可以使用以下任一方式查看通过我的代理的流量:
curl http://localhost:8888/stuff --proxy localhost:2080
curl http://some.server.com:8888/stuff --proxy localhost:2080
使用 Spring 应用程序或简单的 HttpURLConnectionExample Java application,当我调用 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的值? -
是的,感谢您的提问。为我的问题添加了相关代码和输出。