我对系统代理检测有一些神秘的问题:实际上,我有正确的代码来在运行时检测系统代理设置,它也可以处理 pac 文件和 http 代理设置。当我在目标站上存储和执行所有内容时,它绝对正确。
但是:我在目标站上运行一小段代码,并将其他任何东西(罐子)存储在另一个站上,Apache 网络服务器在该站上运行。我主要从 URLClassloader 加载类,以便通过网络加载这段代码,它也负责代理检测。并且以这种方式,默认代理选择器始终提供 DIRECT,它无法找到正确的设置。
我想,问题是我想设置
System.setProperty("java.net.useSystemProxies","true");
在加载的类中,不知何故这不起作用......但是当我 sysout 属性值时,它是true
.
我写了一个小测试程序,唯一的区别是:
一个)
Class.forname("a"); -> a is in the classpath
二)
URL[] url = new URL[1];
url[0] = new URL("http://1.2.3.4/dtfw");
URLClassloader u = new URLClassloader(url);
Class.forname("a", true, u);
这两段代码都有效,唯一不同的是输出。有人有什么想法吗?
提前致谢!!
佐米