2011-01-29 245 views
1

基本上我试图为http请求写一个代理。我已经能够很容易地设置服务器,并且在将浏览器指向代理而不是直接连接之后,它正在接收从浏览器发送的原始http请求。如何通过代理发送Java中的原始http请求

我现在的问题是,我需要现在能够从代理发送原始请求来检索目标服务器的响应。我一直试图通过Apache的HttpClient进行挖掘,但据我所知,我仍然不确定如何使用它来促进发送原始请求。

有什么建议吗?

回答

1

除了识别CONNECT命令之外,您在yur proxy中不需要任何HTTP感知代码。其余部分只是向前和向后复制字节。您可以为此(每个连接)使用两个线程,或者您可以使用NIO在一个线程中完成所有操作。

+0

你是什么意思的“连接”命令? 我通过我的代理运行我的浏览器,并且我的代理正在接收原始的http请求,例如“GET http://www.google.com HTTP/1.1 ....”,现在我想将这些请求发送给目标服务器(本例中为google.com)。 – jerluc 2011-01-29 03:35:01

0

它看起来像所有你需要做的是创建一个连接到远程服务器。根据您重新路由浏览器请求的方式,您可能需要自己实施DNS查找。正如EJP所说,只需将一个流中的字节复制到另一个流中,然后将响应复制回来。