无法获取代理详细信息

Not able to fetch proxy details

我正在开发一个 Springboot 应用程序,我的任务是获取客户端系统(Windows 代理后面的机器)的代理详细信息,因为 java 代码托管在 RHEL Unix 机器上(同样在另一个代理后面)。我在 Services.java 中使用以下代码片段来获取代理详细信息。

流程就像 (CustomSpringApplication.java -> Controller.java -> Services.java)

当我将上面的代码放在控制器或服务层时,此代码不会获取代理详细信息。但是只有当我将此代码放在主线程中时它才会获取代理详细信息,即 CustomSpringApplication.java 但由于某些原因,我无法将此代码放在那里,因为这会影响与数据库的连接。

System.setProperty("java.net.useSystemProxies", "true");

  List<Proxy> l = ProxySelector.getDefault().select(new URI("https://www.google.ca/"));             

  for (Iterator<Proxy> iter = l.iterator(); iter.hasNext();) {

     Proxy proxy = iter.next();

     logger.debug("proxy type : " + proxy.type());

     InetSocketAddress addr = (InetSocketAddress) proxy.address();                 

     if (addr == null) {

        logger.debug("No Proxy");

     } else {

        logger.debug("proxy hostname : " + addr.getHostName());

        proxyMap.put(Constants.PROXY_KEY, addr.getHostName());

        logger.debug("proxy port : " + addr.getPort());

        proxyMap.put(Constants.PORT_KEY, addr.getPort()+"");

     }

  }

请帮助我如何在我的 Springboot 应用程序中获取代理详细信息。

编辑 1:我了解到如果我们的代码在服务器上运行,我们将无法获取代理详细信息。所以我在客户端运行的 javascript 中写下了我的代码,在那里我能够访问所需的网站(这是实际的请求)。谢谢。这个问题可以关闭了。

我在java脚本中使用的代码如下:不需要代理。

var xhr = new XMLHttpRequest();
tmpUrl = proxyurl + url;
xhr.open(method, tmpUrl);
xhr.send();

您在上面粘贴的用于查找代理的代码将始终获取代码为 running/deployed 的机器的代理信息。正如您所说,您最初的要求是您 运行 层上的代码似乎是正确方法的其他内容。祝你好运,但要注意那里的 CORS 问题。