Java的ProxySelector是否不适用于自动代理配置脚本?
我希望我的Java程序使用系统的代理配置。因此,我使用了在很多地方找到的代码,例如[this
answer](http://codingdict.com/questions/109305,将其设置java.net.useSystemProxies
为true并调用ProxySelector.getDefault().select(...)
以发现我想要访问的特定主机的代理。当我在“
Internet属性”中配置了单个显式代理服务器时,此方法可以正常工作。但是,如果我设置了“使用自动配置脚本”,它将始终返回直接的“代理”。
我知道该脚本有效,因为我的浏览器可以访问为其返回代理服务器的主机,而没有脚本集则不能。我什至尝试将脚本简化为最基本的要求:
function FindProxyForURL(url, host){
return "PROXY my.proxy.mydomain:3128";
}
并且可以在我的浏览器中使用,但ProxySelector.getDefault().select(...)
仍仅返回DIRECT。
我想念什么吗?(应该在Java 1.6和Windows 7上使用)。
回答:
否,Java ProxySelector无法读取代理自动配置(PAC)文件。
但是,正如Brian de Alwis建议回答我的类似问题一样,
库似乎提供了这种支持/功能。
要为Java应用程序提供现成的网络连接,可以使用Proxy-
Vole库。它提供了一些策略来自动检测当前的代理设置。有许多可配置的策略可供选择。目前,Proxy-Vole支持以下代理检测策略。
- 读取平台设置(支持:Windows,KDE,Gnome,OSX)
- 读取浏览器设置(支持:Firefox 3.x,Internet Explorer; Chrome和Webkit使用平台设置)
- 读取环境变量(在Linux / Unix服务器系统上经常使用的变量)
- (不支持所有变体)
以上是 Java的ProxySelector是否不适用于自动代理配置脚本? 的全部内容, 来源链接: utcz.com/qa/409975.html