java - 如何在java程序(不是小程序)中获取默认代理设置?

标签 java networking proxy network-programming

我刚刚在网络上搜索如何获取系统代理设置。我发现:

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

但它什么也没做。我的公司网络中有代理设置,但显示代理列表的代码:

ProxySelector.getDefault().select(new URI("http://foo/bar"))) 

说它只是一个“DIRECT”代理。我不想在完成后手动提供代理设置。有没有办法让 JVM 提供从操作系统/浏览器到 Java 程序(不是小程序)的代理设置?

好吧,我想我明白了:我的浏览器代理是由某个脚本设置的,定义在:

Internet Properties/Connections/LAN Settings/Use automatic configuration script

可能这就是 Java 无法正确列出代理的原因,即使它在浏览器中使用也是如此。遗憾的是,JVM 无法解析脚本并提供这些设置...

最佳答案

您必须设置属性: System.setProperty("java.net.useSystemProxies", "true"); 在main方法中,否则没有效果,然后按照您的描述调用getDefault()。

关于java - 如何在java程序(不是小程序)中获取默认代理设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904088/

相关文章:

linux - 使用tc进行带宽管理的优秀GUI工具

java - Spring AOP 何时使用 CGLIB 代理?

java - 不调用内部函数?

networking - 为什么客户端连接数会影响Redis性能?

java - 如何使用 SNMP 监控 JVM 和应用程序

node.js - 错误! Windows_NT 6.3.9600,windows8无法安装cordova

go - 代理处理函数中 []byte 的字符串表示形式

java - 通过执行 HttpsURLConnection.setDefaultSSLSocketFactory 拒绝访问 setFactory

javascript - Java:Java 中 JavaScript localeCompare() 的替代方案是什么?

Java - 拖放不适用于 selenium 3.8