1

我目前正在一个 Web 请求项目中工作,并且正在使用 Apache Http 客户端库。我尝试使用经过 mozilla firefox 测试的工作 Socks v4/5 连接到服务器(例如http://www.google.com),但问题是我从未得到响应。只有不同的错误...

这是一个代码片段:

//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 代理完美配合。

4

1 回答 1

0

Http 代理和 socks 代理有非常不同的协议(http://en.wikipedia.org/wiki/SOCKS#Comparison)。对于您的问题:您可以通过本机 Java 套接字(如何配置 HTTPClient 以针对 SOCKS 代理进行身份验证?)或通过 DefaultClientConnectionOperator 创建自己的实现,这是很好的指南(http://4devops.blogspot.com/2011 /10/httphttps-over-socks-proxy-with-java.html )

于 2012-10-26T17:45:25.383 回答