10

对于我们设置这些属性后的 java 桌面应用程序

System.setProperty("java.net.useSystemProxies","true");
System.setProperty("http.proxyHost", "1.1.1.1");
System.setProperty("http.proxyPort", "8080");

每个 http 连接都将通过定义的代理完成。

但是对于小程序,这些不起作用。(在小程序查看器中可以,但在浏览器中则不能。)小程序始终使用在控制面板\java\network settings\proxy 设置中定义的这些设置。

如何在小程序中设置代理? (在每个打开的连接中使用代理类对我来说不是一个解决方案。)

Applet 使用 java 1.6 签名和编译

4

2 回答 2

7

我想系统属性方法不起作用的真正原因是,当小程序启动时,Java 运行时系统已经读取了属性并设置了默认代理选择器。

你试过使用ProxySelector吗?请参阅本文档的第 4) 节。

当然,这只有在您的小程序是签名小程序时才可能起作用。

于 2011-07-13T10:39:47.397 回答
0

您可以使用 API 来完成,但不能针对每个连接。

查看 URL.openConnection()。它将调用委托给处理程序。处理程序由处理程序工厂创建(如果已注册)。因此,您必须注册自己的工厂,创建通过代理执行 URL 连接的 URL 处理程序(调用 URL.openConnection(proxy))。

Factory 必须实现接口 URLStreamHandlerFactory 并且可以通过调用静态方法 URL.setURLStreamHandlerFactory() 来注册。

于 2011-07-13T10:40:44.580 回答