我需要使用socks 4代理來調用服務器。我在Java版本1.6。與Socks 4代理進行HTTP通話
如果我們用這樣的事情,然後它把SOCKS代理的版本5
URL url = new URL("https://www.google.com");
URLConnection connection = null;
SocketAddress proxySocketAddress1 = new InetSocketAddress("XXXXXXXXXX", 8081);
Proxy proxy = new Proxy(Proxy.Type.SOCKS, proxySocketAddress1);
connection = url.openConnection(proxy);
connection.setConnectTimeout(150000);
connection.connect();
我可以通過做
// Set SOCKS proxy
System.getProperties().put("socksProxyHost","xxxxx");
System.getProperties().put("socksProxyPort","1234");
System.getProperties().put("socksProxyVersion","4");
當我做到這一點我在系統級設置socks代理能夠到達服務器
connection = url.openConnection();
但我的其他連接像連接到數據庫,加密ption服務器也通過代理失敗。
我也試過,不包括系統代理,但沒有成功服務器。
System.getProperties().put("socksnonProxyHosts","*.net");
System.getProperties().put("http.nonProxyHosts","*.net");
是否有任何其他方式可以選擇在java 1.6中使用SOCKS4。
'socksnonProxyHosts'未在[Java的網絡和代理(http://docs.oracle.com/javase/7/docs/technotes/guides/net/proxies.html)上市,也沒有這樣的事情。 (無論是'socksProxyVersion,'但@RemyLebeau給出的錯誤鏈接描述爲在Java 7中添加)使用標準JDK庫使用任何SOCKS4代理 – EJP