设置java应用程序的代理

时间:2015-06-07 11:27:32

标签: java proxy network-programming proxy-server

我正在创建一个通过https调用某些服务的java应用程序。但每当我调用任何api时,我需要通过System.setProperty设置我的代理(" https.proxyHost","某些代理主机");.这也是系统相关的,因为代理主机可以改变系统。为什么不像浏览器那样自动选择代理。有没有办法配置一次或让它自动检测代理设置?

2 个答案:

答案 0 :(得分:1)

您可以将系统属性java.net.useSystemProxies设置为true,将其设置为使用系统代理设置,就像您的浏览器一样。通过代码执行:

System.setProperty("java.net.useSystemProxies","true");

在命令行上

java -Djava.net.useSystemProxies=true ...

${java.home}/lib/net.properties文件作为JRE的默认文件。有关one of my previous answers的更多信息,请参阅。

请注意,这只有在您尝试在代码(System :: setProperty)或命令行(-Dhttp.proxyHost=some.proxy.host)中手动设置代理的情况下才有效。手动设置代理只会撤消此操作。

答案 1 :(得分:0)

如果您正在通过代理运行,那么您必须自己指定它,除非它已在系统上设置为环境变量。

您可以在运行应用程序时指定代理。类似的东西:

java -Dhttp.proxyHost=some.proxy.host

另外,不要忘记推特非代理主机

正确的方法是让用户输入代理详细信息(如果需要)