Java中的代理设置

时间:2013-01-09 18:02:59

标签: java properties proxy network-programming

用谷歌搜索并找到一些关于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中进行代理设置的详细和官方文档在哪里?

1 个答案:

答案 0 :(得分:2)

  1. 没有。没有proxySet这样的属性。这是1997年长期不复存在的HotJava bean的一个特征,从那里它已经渗透到各种第三方书籍中。 JDK中从来没有这样的属性,自1.1.2以来我一直在研究它们。为了证明,设置其他两个并将proxySet设置为false,看看会发生什么。注意,文档确实回答了这个问题,因为proxySet没有出现在那里。

  2. (a)没有,但你不应该使用proxyHost/Port,因为它们已经过时了。 (b)文件没有这样说。

  3. 请参阅(1)了解proxySet。更重要的是将其他设置为null而不是“”但我不相信它会产生任何影响:一旦属性被加载,它们就会坚持下去。如果您需要动态控制代理,则需要使用java.net.Proxy.

  4. @ tostao的评论已经回答了这个问题。