gpt4 book ai didi

java - 如何获取托管网络中代理服务器的名称或 ip?

转载 作者:行者123 更新时间:2023-11-30 08:47:00 25 4
gpt4 key购买 nike

我需要能够以编程方式访问某些 url。我按如下方式使用 URLConnection

URL url = new URL(http,         
myProxy.com, // I need to know this parameter
-1,
http://www.example.com/);

如何获取托管网络中使用的代理服务器的名称。

当我使用像 chrome 这样的浏览器时,它会将我连接到向互联网发出请求的代理服务器。我如何获得代理服务器的名称?

最佳答案

你可以尝试使用java ProxySelector类来做到这一点,她是 java 中的用法的简短示例 proxy configuration指南:

private Proxy findProxy(URI uri)
{
try
{
ProxySelector selector = ProxySelector.getDefault();
List<Proxy> proxyList = selector.select(uri);
if (proxyList.size() > 1)
return proxyList.get(0);
}
catch (IllegalArgumentException e)
{
}
return Proxy.NO_PROXY;
}

要获取主机名和 IP 地址,您可以使用 InetSocketAddress,您可以从 Proxy 实例获取它:

InetSocketAddress addr = (InetSocketAddress) proxy.address(); 
if(addr != null) {
System.out.println("proxy hostname : " + addr.getHostName());
System.out.println("proxy port : " + addr.getPort());
}

但据我所知,需要设置一个系统属性来执行此操作:

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

另一种解决方案是使用 proxy-vole library去做吧。这是一些usage examples .

关于java - 如何获取托管网络中代理服务器的名称或 ip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com