Asp.Net 引擎可能是不錯,但是它把程序員想的太笨,會自以為是做很多自動的 Encode 和 Decode,以下文舉例:
如果客戶端我們 post 了如下的數據,
但是你實際得到的是:
也就是說,默認的調用 Asp.Net 引擎提供給我們的方法:
byte[] bytesToPost = httpLocalRequest.ContentEncoding.GetBytes(httpLocalRequest.Form.ToString());
我們將會得到一個錯誤的結果。
我們必須:
byte[] bytesToPost = ReadFully(httpLocalRequest.InputStream); private byte[] ReadFully(Stream input) { byte[] buffer = new byte[16 * 1024]; using (MemoryStream ms = new MemoryStream()) { int read; while ((read = input.Read(buffer, 0, buffer.Length)) > 0) { ms.Write(buffer, 0, read); } return ms.ToArray(); } }
作者:cnblogs loogn
查看本欄目