Java不用System.getProperty("http.nonProxyHosts")怎么获取ie代理配置的忽略地址列表
时间: 2024-06-05 11:10:45 浏览: 177
在Java中,可以使用以下方式获取IE代理配置的忽略地址列表:
1. 使用Windows注册表读取IE代理设置,具体路径为:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyOverride。
2. 使用JNA库调用Windows API获取代理配置信息,具体函数为WinHttpDetectAutoProxyConfigUrl、WinHttpGetDefaultProxyConfiguration和WinHttpGetIEProxyConfigForCurrentUser。
这两种方式都可以获取IE代理配置的忽略地址列表。但是需要注意的是,第一种方式只适用于Windows系统,而第二种方式也只适用于Windows系统,并且需要使用JNA库。如果需要在其他操作系统下获取代理配置信息,可能需要使用其他方法。
相关问题
windows有ie代理配置的例外列表,System.getProperty("http.nonProxyHosts")是null
`System.getProperty("http.nonProxyHosts")` 是 Java 的系统属性,用于设置不使用代理服务器的主机列表。它与 Windows 的 IE 代理配置的例外列表是不同的概念。
如果你想要获取 Windows 的 IE 代理配置的例外列表,你可以通过以下步骤进行:
1. 打开 Internet Explorer 浏览器
2. 点击菜单栏的“工具”选项
3. 选择“Internet 选项”
4. 在弹出的“Internet 选项”对话框中,点击“连接”选项卡
5. 点击“局域网设置”按钮
6. 在弹出的“局域网设置”对话框中,找到“代理服务器”部分下的“高级”按钮,并点击它
7. 在弹出的“高级”对话框中,你将会看到“在以下情况下不使用代理服务器”这一部分,里面列举了例外列表
如果你想要在 Java 中使用这个例外列表,可以使用 `java.net.ProxySelector` 类进行设置。例如:
```
String proxyHost = "your.proxy.host";
int proxyPort = 8080;
String nonProxyHosts = "<local>|localhost|127.*|[::1]";
System.setProperty("http.proxyHost", proxyHost);
System.setProperty("http.proxyPort", String.valueOf(proxyPort));
System.setProperty("https.proxyHost", proxyHost);
System.setProperty("https.proxyPort", String.valueOf(proxyPort));
System.setProperty("http.nonProxyHosts", nonProxyHosts);
System.setProperty("https.nonProxyHosts", nonProxyHosts);
ProxySelector.setDefault(new MyProxySelector());
```
这里的 `MyProxySelector` 是自定义的 `ProxySelector` 类,用于根据例外列表判断是否使用代理服务器。
System.getProperty("http.nonProxyHosts")无法获得系统的代理配置
如果您无法获得系统的代理配置,可能是因为您的系统没有设置代理或者代理配置不正确。要设置代理,请按照以下步骤操作:
1. 打开您的系统设置或网络设置,找到代理设置。
2. 输入代理服务器地址和端口号。
3. 如果需要身份验证,则输入用户名和密码。
4. 保存设置并测试连接。
如果您已经设置了代理但仍然无法获得代理配置,可以尝试通过以下方式来解决问题:
1. 检查您的网络连接是否正常。
2. 检查您的防火墙设置,确保允许网络连接。
3. 尝试使用其他网络连接来测试。
如果您仍然遇到问题,建议与您的系统管理员或网络服务提供商联系,以获取更进一步的帮助。
阅读全文