『備忘』HttpWebRequest 在 POST 提交時, 標頭(Headers)丟失原因


近來研究 HttpWebRequest —— 輔助類完成時,POST JSON數據 總會 丟失標頭(Headers)。

 

 

 

HttpWebRequest POST JSON數據,分如下幾步:

> 將 JSON 轉為 byte[]。

> 從 HttpWebRequest.GetRequestStream() 獲得 寫入流。

> 將 byte[] 寫入到這個 Stream 中。

 

類似的 操作,包括 文件上傳,POST 表單 —— 最終都要 轉換成 byte[]

 

 

 

核心注意事項:

一定不要設置 HttpWebRequest.ContentLength 這個字段。手動設置 這個字段 將導致 標頭(Header)丟失【尤其是 自定義標頭丟失】。

 

 

 

 

特此備忘,希望其他有類似問題的朋友 不要走彎路。

> 這兩天,對於 標頭丟失 這個 BUG,我查遍了 一百多個網頁,沒有答案。

> 又 反編譯了 .Net 底層類庫,看是不是 微軟 不允許 自定義標頭。

> 最后 居然是這樣一行 簡單的代碼 —— 足足浪費了 3天時間。

 

 

                                                                                            舒小龍   InkFx

                                                                                        2016-07-17 03:03    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM