How to use automatic proxy configuration script in Java

前端 未结 4 1530
囚心锁ツ
囚心锁ツ 2021-01-02 05:49

My Internet Explorer is set to have an automatic proxy file(so-called PAC) for web access. Is there a way to use this on my Java program, also ?

My below Java code

相关标签:
4条回答
  • 2021-01-02 06:10

    Java does not have any built-in support for parsing the JS PAC file. You are on your own. What you can do is download that file and parse the proxy host from it. You should read this.

    0 讨论(0)
  • 2021-01-02 06:12

    Wow! I could load Proxy Auto-Config (PAC) file on Java. Please see below codes and package.

    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());
    }
    

    You already have a [com.sun.deploy.net.proxy] package on your machine! Find [deploy.jar] ;D

    0 讨论(0)
  • 2021-01-02 06:19

    Based on @Jaeh answer I used the code below. Note that SunAutoProxyHandler implements AbstractAutoProxyHandler and there is an alternative concrete implementation called PluginAutoProxyHandler but that implementation does not appear to be as robust:

        BrowserProxyInfo b = new BrowserProxyInfo();
        b.setType(ProxyType.AUTO);
        b.setAutoConfigURL("http://example.com/proxy.pac");
    
        SunAutoProxyHandler handler = new SunAutoProxyHandler();
        handler.init(b);
    
        ProxyInfo[] ps = handler.getProxyInfo(new URL(url));
        for(ProxyInfo p : ps){
            System.out.println(p.toString());
        }
    
    0 讨论(0)
  • 2021-01-02 06:20

    In my case, I've just figured-out what the .pac file will return, then hardcode.

    0 讨论(0)
提交回复
热议问题