asp.net 核心 1.0 mvc。从 Request.Body 获取原始内容
Posted
技术标签:
【中文标题】asp.net 核心 1.0 mvc。从 Request.Body 获取原始内容【英文标题】:asp.net core 1.0 mvc. Get raw content from Request.Body 【发布时间】:2016-06-11 02:11:40 【问题描述】:我试图在 asp.net core 1.0 中获取 Request.Body
的原始内容,我想知道将整个身体作为 byte[]
的正确方法是什么。如果您有任何类似情况的经验并且知道“正确”的做法,请分享。
【问题讨论】:
【参考方案1】:我使用了这个代码...
using (var requestBodyStream = new MemoryStream())
var body = request.Body;
await request.Body.CopyToAsync(requestBodyStream);
requestBodyStream.Seek(0, SeekOrigin.Begin);
requestPayload.Body = await new StreamReader(requestBodyStream).ReadToEndAsync();
【讨论】:
【参考方案2】:Request.Body
是一个流。该流具有Read
方法,该方法采用一个缓冲区,该缓冲区是一个字节数组,您可以将数据读入其中。由于您可能不知道流的大小,甚至不是所有内容都可用,因此您需要在循环中执行此操作,直到您从流中读取所有数据 - this *** 答案显示了如何执行此操作(如果您不想阻塞你的线程可以使用 ReadAsync)。或者 - 如果您想将内容读取到字符串,您可以使用 StreamReader
类。
【讨论】:
以上是关于asp.net 核心 1.0 mvc。从 Request.Body 获取原始内容的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET / MVC 1.0 组件和 Ajax 控件 - 网格 - 日历 - 搜索?
ASP.NET MVC 1.0 AfterBuilding 视图在 TFS 构建上失败
Orchard 发布1.0版本和ASP.NET MVC 3 RTM
如何将项目引用添加到 ASP.NET Core 1.0 MVC 项目