Java系统属性,http.proxyHost,两个问题

The*_*111 9 java proxy properties system-properties

我正在开发一个发出HTTP请求的Java应用程序,我开发时间的一半是在代理之后.所以我的代码中有以下块:

if (BEHIND_PROXY) {
    java.util.Properties systemProperties = System.getProperties();
    systemProperties.setProperty("http.proxyHost", PROXY_HOST);
    systemProperties.setProperty("http.proxyPort", PROXY_PORT);
}
Run Code Online (Sandbox Code Playgroud)

我的想法是根据我的位置改变价值BEHIND_PROXY.我今天的工作,不是一个代理之后,忘了设置BEHIND_PROXYfalse.但是,连接仍然成功,我的应用程序收到了它请求的数据.这怎么可能?是否有内置的东西,如果无法访问代理服务器,它只是再次尝试但在此重试时绕过代理?

第二个问题,我一直试图找到一个完整的系统属性列表.我发现有很多帖子像一个,但他们没有一个人列出http.proxyHosthttp.proxyPort,这让我觉得他们显然不是很完整.我不知何故错了?这些http.x属性属于这些其他列表吗?某处有更完整的清单吗?

Nat*_*rot 11

是否有内置的东西,如果无法访问代理服务器,它只是再次尝试但在此重试时绕过代理?

是.

我很惊讶地看到这一点,但这里是内部连接的来源: sun.net.www.protocol.http.HttpURLConnection.在第760行,如果我们尝试了所有可用的代理并且无法连接,我们会尝试非代理连接.

我不知何故错了?

也许.对或错,Java哲学似乎是系统属性是临时性的东西,知道它存在的唯一方法是阅读它所影响的事物的文档.在这种情况下,HttpURLConnection链接到网络属性上的页面.