我正在开发一个必须通过SOCKS代理(Tor)连接的应用程序。我已经能够通过代理成功打开Socket
和SSLSocket
连接,而不会向我的默认DNS服务器发出任何DNS请求(即代理处理DNS)。我想要实现的下一件事是Http,我通常会使用HttpURLConnection
类。我尝试使用URL.openConnection(proxy)
,但是java使用我的默认DNS服务器解析IP而不是让代理处理DNS。
我尝试创建自己的URLConnection
/ HttpURLConnection
实现,但没有运气。我还查看了其他一些Http客户端库,但由于大多数都使用内置的HttpURLConnection
类,因此没有运气。
我还考虑强制HttpURLConnection
类为Http使用预先连接的套接字,因此我可以像往常一样打开套接字并让代理处理DNS,然后用{{1}包装它} class,但看起来这是不可能的。
此时我不知道如何解决这个问题。所有的想法都受到赞赏。
以下是我现在的代码(没有任何http支持,仅HttpURLConnection
和Socket
):https://github.com/tadejgasparovic/JTor
谢谢!