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
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/aspx/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索byte
, buffer
, read
MemoryStream
,以便于您获取更多的相关知识。
时间: 2024-10-31 18:06:17