java - 通过预先存在的 Socket 路由 Http(s)URLConnection

标签 java sockets http ssl apache-httpclient-4.x

我花了几个令人恼火的时间研究 javax.net 和 sun.net SSL 实现以及 Apache HttpClient 4.3 SSL 处理(默认情况下在其核心使用 javax.net 设施),但取得的进展却少得令人沮丧。我正在尝试通过先前创建的输入/输出流从 HttpsURLConnection 传输流量,以便能够访问 HTTP java.net 实用程序,同时能够通过我自己的流发送数据。我最初认为我可以通过带有使用这些输入/输出流的 SocketImpl 的自定义 Socket 实例来黑客式地路由 HttpsURLConnection,但看来我必须更改默认的 HttpsURLConnection SSLFactory 才能实现这一点,这对于应用程序来说是不可行的是多线程的。我愿意接受替代库和黑客修复!

我希望实现的最终目标:Http(s)URLRequest(或支持 SSL 的等效 HTTP 工具)-> 我的自定义套接字 -> Internet

最佳答案

在我看来,最好的选择是在每个相关的 HttpsURLConnection 实例上安装自己的 SSLSocketFactory。它可以创建一个 >SSLSocket 实例委托(delegate)给真实的实例,但返回包裹在委托(delegate)流周围的流。

如果您出于某种原因需要访问密文,您可以将其颠倒过来,并将您自己的 Socket 提供给 SSLSocketFactory.createSocket(Socket, ...),

关于java - 通过预先存在的 Socket 路由 Http(s)URLConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468366/

相关文章:

http - 在 JBoss AS 7 中自定义 HTTP 代码和错误消息

c - 简单的套接字库需要一些检查

c# - 系统.ServiceModel.CommunicationException : The underlying connection was closed

java - 如何在整个 java 类中创建变量?

java - 如何为 OAuth2RestTemplate 设置 HTTP header

delphi - 谁能举个使用套接字发送文件的例子吗?

php - 为什么我会收到 HTTP 400 错误请求错误?

python - 如何使用 python 2.7 获取发送和接收的总字节数?

java - 将 SSL 证书转换或导入到 Java keystore

java - 对象 TemplatesPlugin 不是包 securesocial.controllers 的成员