java.net.ProxySelector. nonProxyHosts()报错
时间: 2024-05-30 10:09:38 浏览: 8
java.net.ProxySelector.nonProxyHosts() 方法是用来获取不需要通过代理服务器访问的主机列表的,它返回一个字符串类型的数组。这个方法的使用需要注意以下几点:
1. 这个方法需要在设置代理服务器之后才能调用,否则会抛出 NullPointerException 异常。
2. 这个方法只有在采用自动代理配置(PAC)方式时才会被调用。
3. 如果没有设置不需要代理访问的主机,那么这个方法将返回 null。
如果你仍然遇到报错,可以检查一下你的代码是否按照以上要求进行了设置和调用。同时,也需要检查一下你的网络环境是否支持自动代理配置(PAC)方式。
相关问题
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` 类,用于根据例外列表判断是否使用代理服务器。
Java不用System类怎么获取ie代理配置的忽略地址列表
可以使用`java.net.ProxySelector`类来获取IE代理配置的忽略地址列表。下面是一个示例代码:
```java
import java.net.ProxySelector;
import java.net.URI;
import java.util.List;
public class ProxyIgnoredAddresses {
public static void main(String[] args) {
try {
// 获取系统默认的代理选择器
ProxySelector selector = ProxySelector.getDefault();
// 创建一个URI对象,用于测试
URI uri = new URI("http://www.baidu.com");
// 获取忽略地址列表
List<java.net.Proxy> proxies = selector.select(uri);
if (proxies != null) {
for (java.net.Proxy proxy : proxies) {
if (proxy.type() == java.net.Proxy.Type.DIRECT) {
System.out.println("No proxy configured for " + uri.getHost());
} else {
System.out.println("Proxy found: " + proxy.address());
// 获取忽略地址列表
List<String> ignoredAddresses = proxy.nonProxyHosts();
if (ignoredAddresses != null) {
System.out.println("Ignored addresses: " + ignoredAddresses);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这个示例代码会输出IE代理配置的忽略地址列表。如果没有配置忽略地址列表,则会输出空列表。