用谷歌搜索并找到一些关于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中进行代理设置的详细和官方文档在哪里?
答案 0 :(得分:2)
没有。没有proxySet
这样的属性。这是1997年长期不复存在的HotJava bean的一个特征,从那里它已经渗透到各种第三方书籍中。 JDK中从来没有这样的属性,自1.1.2以来我一直在研究它们。为了证明,设置其他两个并将proxySet
设置为false,看看会发生什么。注意,文档确实回答了这个问题,因为proxySet
没有出现在那里。
(a)没有,但你不应该使用proxyHost/Port
,因为它们已经过时了。 (b)文件没有这样说。
请参阅(1)了解proxySet
。更重要的是将其他设置为null而不是“”但我不相信它会产生任何影响:一旦属性被加载,它们就会坚持下去。如果您需要动态控制代理,则需要使用java.net.Proxy.
@ tostao的评论已经回答了这个问题。