2013-03-11 119 views
2

我正在處理將中繼到另一臺服務器的連接的代理。我實施了一個IHttpHandler,它接受了一個特定地址的請求並將它們發送給我的代理。獲取HttpRequest完整請求字符串

我的代理基本上開始sockect連接到代理服務器,並讀取原始請求:

var requestString = new StreamReader(httpRequest.InputStream).ReadToEnd(); 

我的問題就出現在這一點上:輸入流只包含HTTP請求的主體的流,不是完整的要求。

如何檢索完整的HTTP請求而不必從HttpRequest對象重建它?

回答

1

我不知道在ASP .NET中有一個明確的單線程,但你可以非常接近,如this論壇帖子所示。建議從HttpRequest屬性中構建第一行,然後添加ServerVariables["ALL_RAW"],然後像InputStream那樣添加請求主體。

0

獲得'完整HTTP請求'對象的唯一方法是以某種方式實際重建它。雖然我不確定你是否需要整個對象。也許你可以只抓取HttpRequest中的一部分項目進行處理?您可以手動將您需要的對象的各個部分連接成新的。一旦你偏離使用HttpRequest,這對我來說都是習慣性的。