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 项目

asp.net core mvc cors请求被拒绝[重复]

ASP.NET MVC 核心外键