如何在小程序中设置 Http 代理
Posted
技术标签:
【中文标题】如何在小程序中设置 Http 代理【英文标题】:How to set Http Proxy in an applet 【发布时间】:2011-10-04 09:14:18 【问题描述】:对于我们设置这些属性后的java桌面应用程序
System.setProperty("java.net.useSystemProxies","true");
System.setProperty("http.proxyHost", "1.1.1.1");
System.setProperty("http.proxyPort", "8080");
每个 http 连接都将通过定义的代理完成。
但对于小程序,这些不起作用。(在小程序查看器中可以,但在浏览器中则不行。) Applet 总是使用在控制面板\java\network settings\proxy settings 中定义的这些设置。
如何在小程序中设置代理? (在每个打开的连接中使用代理类对我来说不是一个解决方案。)
Applet 使用 java 1.6 签名和编译
【问题讨论】:
【参考方案1】:我认为系统属性方法不起作用的真正原因是在小程序启动时,Java 运行时系统已经读取了属性并设置了默认代理选择器。
您是否尝试过使用ProxySelector
?请参阅this document 的第 4) 部分。
当然,这只有在您的小程序是签名小程序时才可能有效。
【讨论】:
@NikolayKuznetsov - 我想是这样......因为这就是他要问的。 但我猜无法自动检测浏览器当前使用的代理。至少,我找不到任何东西。 +1 顺便说一句 你读过这个吗? docs.oracle.com/javase/6/docs/technotes/guides/deployment/….【参考方案2】:您可以使用 API 执行此操作,但不能针对每个连接。
查看 URL.openConnection()。它将调用委托给处理程序。处理程序由处理程序工厂创建(如果已注册)。因此,您必须注册自己的工厂,创建通过代理执行 URL 连接的 URL 处理程序(调用 URL.openConnection(proxy))。
Factory必须实现接口URLStreamHandlerFactory,可以通过调用静态方法URL.setURLStreamHandlerFactory()注册。
【讨论】:
以上是关于如何在小程序中设置 Http 代理的主要内容,如果未能解决你的问题,请参考以下文章
Webpack 4 代理(如何在 webpack 4 中设置代理 url)
如何在 QtWebEngine QML 应用程序中设置用户代理
在 C# 中设置 Internet Explorer / Windows 以使用 Socks5 代理