我的网络服务将使用代理获取一些网页:
System.setProperty("java.net.useSystemProxies", "true");
List<Proxy> proxies = ProxySelector.getDefault().select(new URI(url));
URLConnection connection = null;
Iterator<Proxy> iter = proxies.iterator();
do {
Proxy proxy = iter.next();
System.out.println(proxy);
try {
connection = new URL(url).openConnection(proxy);
} catch (IOException e) {
if (!iter.hasNext()) throw (e);
}
} while (connection == null);
但是,默认的 ProxySelector 始终返回直接连接(无代理)。我已经检查了我的 IE 代理设置,并将 Java 控制面板中的代理设置设置为系统浏览器设置。
既然web服务是通过Tomcat服务器调用的,那么可能需要在Tomcat服务器中进行一些配置?
最佳答案
请查看此链接。
http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html
- http.proxyHost:代理服务器的主机名
- http.proxyPort:端口号,默认80。
- http.nonProxyHosts:应该绕过代理直接访问的主机列表。这是一个由“|”分隔的模式列表。模式可以以“*”开头或结尾,表示通配符。任何符合这些模式之一的主机都将通过直接连接而不是通过代理访问
关于java - 在基于 Java 的 Web 服务中使用代理获取网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8075839/