我想使用socks代理来访问服务器。但有些事情是不对的。我有一个代理,代理的所有者声称它是一个袜子代理。
我简化了我的问题,现在尝试使用以下代码访问google.com。
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();
无法与谷歌建立连接。但是如果我使用PROXY类型作为HTTP然后它正在工作,即如果我用
替换上面代码的第4行Proxy proxy = new Proxy(Proxy.Type.HTTP, proxySocketAddress1);
我尝试使用浏览器(Chrome)访问google.com并指定与“socks proxy”和“http proxy”相同的代理,然后能够打开谷歌。
不确定给定的代理何时在浏览器中作为SOCKS代理工作,那么为什么它不能在代码中工作?
如果我开始工作,那么最终我想做一些事情:
SocketAddress socketAddress = new InetSocketAddress(proxyHostname,proxyPort);
Proxy socketProxy = new Proxy(Proxy.Type.SOCKS, socketAddress);
socket = new Socket(socketProxy);
InetSocketAddress socketAddress = new InetSocketAddress(hostIP,hostPort);
socket.connect(socketAddress,100000);
我可以尝试任何建议吗?
答案 0 :(得分:0)
我猜这个代理不是袜子代理,而是HTTP代理,因为