当前位置: 首页 > 知识库问答 >
问题:

获取系统代理设置不起作用

张璞
2023-03-14

我使用此代码在Java中获取系统代理:

System.setProperty("java.net.useSystemProxies", "true");
    List<Proxy> list = null;
    try
    {
        list = ProxySelector.getDefault().select(new URI("http://google.com"));
    }
    catch (final URISyntaxException e)
    {
        e.printStackTrace();
    }

但是“列表”只包含直接设置,而不包含我在Internet Explorer中设置的设置。奇怪的是,在我们软件的早期版本中,完全相同的代码返回正确的系统代理列表。

有人知道是什么可能使代码无法正常工作吗?

我添加了一些本地库,这是我唯一能想到的。但我仍然不知道这会如何影响这段代码。我在一个小测试应用程序中测试了相同的代码,在同一个eclipse环境中,等等。它可以工作。但是,当我在应用程序中调试到相同的代码时,列表只包含直接的。

有什么想法吗?

共有1个答案

章睿
2023-03-14

本机库是问题所在。我使用NativeSwing在Swing中嵌入了一个WebBrowser。当执行NativeInterface.open()或NativeInterface.initialize()时,代理设置会更改,之后无法更改。因此,我现在读取代理设置并将它们保存到静态字段中。然后当我需要它们时,我会从这个静态字段中读取它们。

故事还在继续:上述方法仅在Eclipse中有效。如果我双击jar,我会得到“本机端没有收到传入连接!”。原因不是因为我正在使用的NativeInterface,而是与java如何处理系统代理设置有关。

我发现这篇文章:http://ideen2011.blogspot.de/2011/08/java-proxyselector-usesystemproxies-and.html

简而言之:使用ProxySelector。设置默认值(null);如果你希望套接字连接不受系统代理等的影响,至少这对我有帮助,但我仍在努力理解,到底是什么在后台发生的。

故事在2015年继续:前面提到的方法导致了这个问题:JavaFX webview集代理

所以我建议而不是

ProxySelector.setDefault(null)

使用

ProxySelector.setDefault(ProxySelector.getDefault())
 类似资料:
  • 我有一个来自3的Vue项目。十、 我在

  • 我正在使用Vue CLI 3.0。0(rc.10)和am并排运行两个服务器(后端服务器和WDS)。 我跟踪了devServer。Vue CLI文档中的代理说明,用于将代理选项添加到我的。我还按照http代理中间件库的说明补充了以下选项: 我的理解是,选项需要动态地将请求上的头更改为“http://localhost:4000“。但是,来自我的应用程序的请求仍从发送http://localhost:

  • cmf_get_option($key) 功能 获取系统配置,通用 参数 $key: string 配置键值,都小写 返回 array 配置信息

  • cmf_get_option($key) 功能 获取系统配置,通用 参数 $key: string 配置键值,都小写 返回 array 配置信息

  • 我在conf/settings.xml中将maven代理设置设置为 但是当我运行maven build时,我得到了以下错误。有人能帮忙吗 详细日志

  • 问题内容: 我有一个命令行PHP脚本,该脚本使用带有foreach的数组的每个成员运行wget请求。这个wget请求有时可能会花费很长时间,因此,例如,如果它超过15秒,我希望能够设置超时以终止脚本。我禁用了PHP安全模式,并在脚本的早期尝试了set_time_limit(15),但是它会无限期地继续。 更新: 感谢Dor指出这是因为set_time_limit()不尊重system()调用。 因