bcb*_*hop 2 java proxy network-programming properties
谷歌搜索并找到一些关于 Java 中代理设置的链接,但很少有事情让我有点困惑
1)我们真的需要设置 proxySet 属性吗?
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "proxy host" );
System.getProperties().put( "proxyPort", "8080" );
2)设置http.proxyHost和proxyHost有什么区别?基本上,这是否意味着“proxyHost”将应用于所有协议,包括http、https、ftp等,而http.proxyHost仅适用于http协议?
System.getProperties().put( "proxyHost", "proxy host" );
或者
System.getProperties().put( "http.proxyHost", "proxy host" );
3)我们总是需要事后做吗?
System.getProperties().put( "proxySet", "false" );
System.getProperties().put( "proxyHost", "" );
System.getProperties().put( "proxyPort", "" );
4)关于在Java中进行代理设置的详细官方文档在哪里?
不。不存在诸如 之类的属性proxySet。它是 1997 年早已不存在的 HotJava bean 的一个功能,从那时起它已经渗透到各种第 3 方书籍中。JDK 中从来没有这样的属性,我从 1.1.2 开始就查看了所有这些属性。为了证明这一点,将其他两个设置proxySet为 false,看看会发生什么。注意,这个问题确实在文档中得到了回答,但proxySet没有出现在文档中。
(a) 没有,除了您不应该使用它们,proxyHost/Port因为它们已经过时了。(b) 文档没有这么说。
参见(1) proxySet。将其他属性设置为 null 而不是“”更有意义,但我不相信它有任何效果:一旦加载了属性,它们就会粘住。如果您需要动态控制代理,则需要使用java.net.Proxy.
这已经在@tostao 的评论中得到了回答。