2011-01-29 176 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所說,只需將一個流中的字節複製到另一個流中,然後將響應複製回來。