【发布时间】:2015-12-29 21:37:07
【问题描述】:
我正在做一个项目,我必须通过多个服务器发送 HTTP 请求,对它们进行加密和解密,对响应进行加密和解密。
这是一个想法:
- 我从配置代理设置的网络浏览器发送请求(通过 SwitchyOmega,因为我无法修改连接代理设置)以连接到“服务器 1”
- “服务器 1”以字节数组的形式接收请求
- “服务器 1”加密请求
- “服务器1”通过“代理”向“服务器2”发送加密请求
- “服务器 2”解密请求
- “服务器 2”执行请求
- “服务器 2”得到响应
- “服务器 2”加密响应
- “服务器 2”将加密响应发送到“服务器 1” 10.“服务器 1”解密响应并将其发送到 Web 浏览器。
这是一个小图:
我无权访问“代理”,但“服务器 1”和“服务器 2”的一切都在我手上。它们最好是小型可移植 Java 应用程序。
我发现了很多关于使用 java 制作代理的事情,但是当我的“服务器 1”接收作为字节数组的请求时,我想找到一个可以正确执行它的 API。我尝试通过将字节转换为字符串,获取主机和端口并使用 URLConnection yc = oracle.openConnection(); 或 HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 之类的东西,但我必须解析 byte[] 以检索诸如方法(get、post、...)、主机之类的信息,端口,协议,...并重建查询。由于请求已经构建,所以看起来很多东西都是徒劳的。
我已经阅读了很多关于 Apache Commons HttpClient 的内容,看起来很棒,但我没有找到正确执行查询的方法。
Apache Commons HttpClient 有没有办法执行原始字节查询? 或者您还有其他执行原始字节查询的建议吗?
【问题讨论】:
标签: java http proxy httprequest apache-httpclient-4.x