如何在Java中使用自动代理配置脚本

Jae*_*aeh 10 java proxy pac

我的Internet Explorer设置为具有用于Web访问的自动代理文件(所谓的PAC).有没有办法在我的Java程序中使用它呢?

我的Java代码似乎根本不使用代理.

ArrayList<Proxy> ar = new ArrayList<Proxy>(ProxySelector.getDefault().select(new URI("http://service.myurlforproxy.com")));
for(Proxy p : ar){
  System.out.println(p.toString()); //output is just DIRECT T.T it should be PROXY.
}
Run Code Online (Sandbox Code Playgroud)

我还在Java控制面板(Control-> Java)上设置了我的代理脚本,但结果相同.我发现没有办法以编程方式为Java设置PAC文件.

人们使用http.proxyHost for System.setProperties(..),但这仅用于设置代理主机,而不是代理脚本(PAC文件).

Jae*_*aeh 8

哇!我可以在Java上加载Proxy Auto-Config(PAC)文件.请参阅以下代码和包装.

import com.sun.deploy.net.proxy.*;
.
.
BrowserProxyInfo b = new BrowserProxyInfo();        
b.setType(ProxyType.AUTO);
b.setAutoConfigURL("http://yourhost/proxy.file.pac");       
DummyAutoProxyHandler handler = new DummyAutoProxyHandler();
handler.init(b);

URL url = new URL("http://host_to_query");
ProxyInfo[] ps = handler.getProxyInfo(url);     
for(ProxyInfo p : ps){
    System.out.println(p.toString());
}
Run Code Online (Sandbox Code Playgroud)

您的计算机上已经有[com.sun.deploy.net.proxy]包了!找到[deploy.jar]; D.

  • 看起来你有一个带有Pixie灰尘的DummyAutoProxyHandler类. (3认同)

Mic*_*l-O 2

Java 没有任何内置支持解析 JS PAC 文件。你只能靠自己。您可以做的是下载该文件并从中解析代理主机。你应该读一下这个