2011-04-10 288 views
6

我有一個任務,我需要創建一個代理服務器,將操縱一些請求/響應它得到的,實現緩存等監聽HTTP請求

對於初學者來說,我想創建最簡單的代理,只需傳遞所有請求和響應。我在網上做了一些搜索,我對如何在某個端口上偵聽請求並獲取HTTP請求感到困惑。我偶然發現了類Socket,ServerSocket,HttpURLConnection,但我不確定所有這些如何相互作用。我試圖閱讀文檔,但它們都交織在一起,有點難以理解。

你能指出我正確的方向,我應該爲這個任務使用哪些類,也許可以共享一個片段來監聽端口,獲取HTTP請求頭等。

回答

5

嗯,我只能假設你的Proxy將是一個ServerSocket監聽HTTP端口上的請求。您通過服務器套接字輸入流讀取請求。在檢查請求符合代理規則之後,您將打開一個到真實HTTP服務器的HttpConnection,並使用http連接中的輸出流轉發客戶端的請求,然後使用http連接輸入流讀取真實的HTTP服務器的響應,您將最終使用套接字的輸出流轉發回客戶端。

在代理中,由於您攔截請求和響應,您可以在轉發之前操作它們。

聽起來沒錯?