Apache HTTP Client袜子代理

时间:2012-06-04 18:12:52

标签: java apache http client socks

我目前正在处理一个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代理。

1 个答案:

答案 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