我目前正在处理一个Web请求项目,我正在使用Apache Http Client库。我尝试连接到服务器(例如http://www.google.com)与使用mozilla firefox测试的工作Socks v4 / 5,但问题是我从来没有得到回复。只有不同的错误...
以下是代码段:
//HttpClient
DefaultHttpClient http = new DefaultHttpClient();
//A class defined by me
Proxy proxy = bla bla;
HttpHost host = new HttpHost(proxy.getIP(), proxy.getPort());
if (proxy.getUsername() != null) {
http.getCredentialsProvider().setCredentials(
new AuthScope(proxy.getIP(), proxy.getPort()),
new UsernamePasswordCredentials(proxy.getUsername(), proxy.getPassword()));
}
http.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, host);
任何人都可以告诉通过SOCKS代理启动通信的正确方法吗?谢谢!
注意:上面的代码适用于HTTP代理。
答案 0 :(得分:0)
Http proxy和socks代理有非常不同的协议(http://en.wikipedia.org/wiki/SOCKS#Comparison)。 对于你的问题: 您可以通过本机java套接字(How can I configure HTTPClient to authenticate against a SOCKS proxy?)执行thTis,或者通过DefaultClientConnectionOperator创建自己的实现,这是一个很好的指南(http://4devops.blogspot.com/2011/10/httphttps-over-socks-proxy-with-java.html)