![](/img/trans.png)
[英]HttpWebResponse.GetResponseStream(): when is the response body transmitted?
[英]Force To Read HttpWebResponse.GetResponseStream() When Content-Length Is Zero
正如標題所說。
有時,來自遠程服務器的HTTP響應包含具有零值的Content-Length標頭,但仍返回HTTP body 。 仍然可以在瀏覽器中使用jQuery獲得該正文,但是使用HttpWebResponse.GetResponseStream()無法讀取任何內容。 我該如何強迫閱讀? 感謝大家。
這是我遇到的HTTP響應示例。
HTTP / 1.1 200 OK
連接:保持活動狀態
緩存控制:無緩存,無存儲
內容類型:文本/純文本
內容長度:0
日期:2013年9月30日星期一09:34:21 GMT
(HTTP正文)
查看源代碼,我找不到強制這種行為的方法。 可能您無能為力。
嘗試禁用HTTP流水線。 在這種情況下,也許HttpWebRequest不依賴於內容長度。 它不太可能會有所幫助。
使用其他HTTP庫,或使用TcpClient
發送請求。 您可以使用Fiddler復制模板HTTP請求,並將其用作您的基礎。 不應該做很多工作。
您還可以創建一個重寫代理來刪除標頭。 那可能是一個努力的解決方案。
第一個問題-您從哪里獲得HTTP響應? 您是使用Fiddler捕獲的,還是通過在調試器中檢查HttpWebResponse來輸入您認為的內容? 我建議使用Fiddler來運行它,並檢查完整的響應頭(如果尚未安裝的話)。
我們首先需要確定返回的Content-Length值為零,還是項目中的某些其他代碼使您將其解釋為零,或者將內容長度的副本設置為零。
我認為這里發生了兩件事之一:
哈羅德
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.