🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
JxBrowser提供允许配置代理设置的API。默认情况下,JxBrowser使用系统代理设置。代理设置存储在BrowserContext实例中。要使用指定的代理设置配置Browser实例,必须使用配置为使用指定代理配置的BrowserContext初始化Browser实例。 以下示例演示如何使用DirectProxyConfig配置Browser实例: ``` String dataDir = FileUtil.createTempDir("chromium-data").getAbsolutePath(); BrowserContextParams contextParams = new BrowserContextParams(dataDir); contextParams.setProxyConfig(new DirectProxyConfig()); Browser browser = new Browser(new BrowserContext(contextParams)); ``` ## 自动侦测 使用此代理配置,连接会自动检测代理设置: ``` contextParams.setProxyConfig(new AutoDetectProxyConfig()); ``` ## 直接 使用此代理配置,连接将根本不使用代理服务器: ``` contextParams.setProxyConfig(new DirectProxyConfig()); ``` ## AutoConfig URL 使用此代理配置,连接使用从代理自动配置(PAC)文件接收的代理设置。您必须提供所需PAC文件的有效URL: ``` contextParams.setProxyConfig(new URLProxyConfig("<pac-file-url>")); ``` 注意: PAC文件的URL必须是有效的http://地址。您无法提供存储在本地文件系统上的* .pac文件的路径。PAC文件的名称必须具有 pac 扩展名。例如, http://my-site.com/proxy.pac。 Ø N A Web服务器PAC文件必须与被服务 应用程序/ x-NS-代理自动配置 MIME类型。 ## 手工 使用此代理配置,您可以为HTTP,HTTPS和FTP协议提供自定义代理设置: ``` String proxyRules = "http=foo:80;https=foo:80;ftp=foo:80;socks=foo:80"; String exceptions = "<local>"; // bypass proxy server for local web pages contextParams.setProxyConfig(new CustomProxyConfig(proxyRules, exceptions)); ``` 例外字符串的格式可以是以下任何一种: * [URL_SCHEME “://”] HOSTNAME_PATTERN [ “:”],例如“foobar.com”, “* foob​​ar.com”, “* .foobar.com”, “* foob​​ar.com:99”,“ https://开头x。*。y.com:99 “ * “” HOSTNAME_SUFFIX_PATTERN [“:”PORT]例如“.google.com”,“。com”,“http://.google.com” * [SCHEME“://”] IP_LITERAL [“:”PORT]例如“127.0.1”,“[0:0 :: 1]”,“[:: 1]”,“http:// [:: 1 ]:99" * IP_LITERAL“/”PREFIX_LENGHT_IN_BITS例如“192.168.1.1/16”,“fefe:13 :: abc / 33” * “<local>”匹配本地地址。“<local>”的含义是主机是否与以下之一匹配:“127.0.0.1”,“:: 1”,“localhost”。 ## 代理授权 如果代理服务器需要授权,您可以使用以下API以编程方式提供登录名和密码: ``` browser.getContext().getNetworkService().setNetworkDelegate(new DefaultNetworkDelegate() { @Override public boolean onAuthRequired(AuthRequiredParams params) { if (params.isProxy()) { params.setUsername("proxy-username"); params.setPassword("proxy-password"); return false; } return true; } }); ``` ## 修改已创建的浏览器实例的代理设置 从版本6.15开始,JxBrowser中提供了允许修改代理设置运行时的功能。 您可以更改特定BrowserContext实例的代理设置运行时。代理配置将自动应用于与BrowserContext关联的所有Browser实例。 以下示例演示了如何使用此API: ``` BrowserContext browserContext = browser.getContext(); ProxyService proxyService = browserContext.getProxyService(); proxyService.setProxyConfig(new CustomProxyConfig("http=foopy:80")); ```