用 Google 搜索并找到了一些关于 Java 代理设置的链接,但有些事情让我有点困惑
1) 我们真的需要设置 proxySet 属性吗?
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "proxy host" );
System.getProperties().put( "proxyPort", "8080" );
2) 设置http.proxyHost 和proxyHost 有什么区别?基本上,这是否意味着“proxyHost”将应用于所有协议(protocol),包括 http、https、ftp 等,而 http.proxyHost 仅适用于 http 协议(protocol)?
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) 文档中没有这样说。proxySet
见(1)。将其他设置为 null 而不是 ""更重要,但我认为它没有任何效果:一旦加载了属性,它们就会保留下来。如果您需要动态控制代理,则需要使用java.net.Proxy。
这已在@tostao 的评论中得到解答。
关于java - Java 中的代理设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14243590/