如何从Java中的系统设置获取代理设置

Tom*_* K. 9 java proxy networking

我正在寻找如何在Windows下使用Java获取系统代理信息的方式,但我发现只有一种方法.但它对我不起作用.

public static void main(String[] args) throws Throwable {
  System.setProperty("java.net.useSystemProxies", "true");
  System.out.println("detecting proxies");
  List<Proxy> pl = ProxySelector.getDefault().select(new URI("http://ihned.cz/"));
  for (Proxy p : pl)
    System.out.println(p);
  Proxy p = null;
  if (pl.size() > 0) //uses first one
    p = pl.get(0);
  System.out.println(p.address());
  System.out.println("Done");
}
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,我得到:

detecting proxies
DIRECT
null
Done
Run Code Online (Sandbox Code Playgroud)

Java意味着,我直接位于互联网上.但这是错的.我落后于代理人.我无法为我的电脑获得解决方案.

dac*_*cwe 6

正如我们在评论中所讨论的,代理设置仅适用于您使用的某些浏览器.

如果您希望Java使用相同的设置,您需要手动将其放入java网络设置(有关详细信息,请查看网页).