Ответ прочее , ответ принят, несомненно, превосходен и корректен, но я подумал, что хотел бы кое-что добавить сюда ...
Если вы работаете на машине, которая настроена на "автоматическое определениенастройки прокси-сервера », который, я считаю, называется PAC , код для определения прокси-сервера в ответе с использованием Java Gubbins не будет работать (он будет думать, что это« прямое »соединение).
Существует библиотека под названием proxy vole (новая лицензия BSD , я думаю), которую вы можете использовать вместо этого, так что вот код другого ответа слегка измененчтобы использовать это:
public class testProxy {
public static void main(String[] args) {
try {
System.setProperty("java.net.useSystemProxies","true");
// Use proxy vole to find the default proxy
ProxySearch ps = ProxySearch.getDefaultProxySearch();
ps.setPacCacheSettings(32, 1000*60*5);
List l = ps.getProxySelector().select(
new URI("http://www.yahoo.com/"));
//... Now just do what the original did ...
for (Iterator iter = l.iterator(); iter.hasNext(); ) {
Proxy 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();
}
}
}
Требуются следующие импорты:
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;
import java.util.Iterator;
import java.util.List;
import com.btr.proxy.search.ProxySearch;
О, и здесь есть примеры использования для прокси-полевки здесь .