Java SE
1.5提供了ProxySelector类来检测代理设置。如果存在与Internet的直接连接,则代理类型将为DIRECT,否则它将返回主机和端口。
下面的示例说明了此功能:
import java.net.InetSocketAddress;import java.net.Proxy;import java.net.ProxySelector;import java.net.URI;import java.util.Iterator;import java.util.List;public class TestProxy { public static void main(String[] args) { try { System.setProperty("java.net.useSystemProxies","true"); List<Proxy> l = ProxySelector.getDefault().select( new URI("http://www.yahoo.com/")); for (Iterator<Proxy> iter = l.iterator(); iter.hasNext(); ) { Proxy proxy = iter.next(); System.out.println("proxy hostname : " + proxy.type()); InetSocketAddress addr = (InetSocketAddress)proxy.address(); if(addr == null) { System.out.println("No Proxy"); } else { System.out.println("proxy hostname : " + addr.getHostName()); System.out.println("proxy port : " + addr.getPort()); } } } catch (Exception e) { e.printStackTrace(); } }}


