package org.codehaus.xfire.transport.http; import java.net.Proxy; import java.net.ProxySelector; import java.net.URI; import java.net.URISyntaxException; import java.util.List; /** * @author Tomasz Sztelak * */ public class ProxyUtils { public boolean isNonProxyHost(String strURI) { URI uri = null; try { uri = new URI(strURI); } catch (URISyntaxException use) { // this should actually not happen, // but just // in case. return false; } String proxyHost = System.getProperty("http.proxyHost", ""); if (proxyHost.equals(uri.getHost())) return false; // ... get a system platform ProxySelector, and ... ProxySelector ps = ProxySelector.getDefault(); // ... let this selector return a list of proxies. List proxies = ps.select(uri); // If that lists sole element is of type Proxy.NO_PROXY // then we need a direct connection, otherwise we need to connect // through a proxy. if (proxies.size() == 1 && proxies.get(0).equals(Proxy.NO_PROXY)) { return true; } return false; } }