Java系统Properties,http.proxyHost,两个问题

标签 java properties proxy system-properties

我正在开发一个发出 HTTP 请求的 Java 应用程序,我一半的开发时间都花在了代理上。所以我的代码中有以下 block :

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

我的想法是根据我所在的位置更改 BEHIND_PROXY 的值。我今天在工作,在代理后面,忘记将 BEHIND_PROXY 设置为 false。但是,连接仍然成功,我的应用程序收到了它请求的数据。这怎么可能?这是否内置了一些东西,如果无法访问代理服务器,它会再次尝试,但在这次重试时绕过代理?

第二个问题,我一直在尝试查找系统属性的完整列表。我发现了很多类似 THIS 的帖子一个,但没有一个列出 http.proxyHosthttp.proxyPort,这让我觉得它们显然不是很完整。我以某种方式搜索错误吗?这些 http.x 属性是否属于这些其他列表?有没有更完整的列表?

最佳答案

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

是的。

我很惊讶看到这个,但它在内部连接的源代码中: sun.net.www.protocol.http.HttpURLConnection .在第 760 行,如果我们尝试了所有可用的代理但无法连接,我们将尝试非代理连接。

我是不是搜索错了?

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

关于Java系统Properties,http.proxyHost,两个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13742350/

相关文章:

java - 将 jTextPane 文本复制到剪贴板

c# - 有没有办法在C#、Java等OOP语言中实现原子性?

java - JAVA 中 XML 的有序列表级别

java - 如何在 JavaFx 中为自定义组件创建属性?

apache - 我可以将一些确切的远程 URL 映射到具有不同端口的本地 URL

python - 如何使用 python urllib 忽略 Windows 代理设置?

java - 定时器之前的状态未清除

java - 连接属性文件中的值

Objective-C 基类属性自定义 Getter 未从子类调用

Python - 扭曲、代理和修改内容