首页 / 问答 / [.NET/.NET Core]ASP.NET Core 应用程序中如何在Web API控制器中获取到请求的请求体(request body)?

[.NET/.NET Core]ASP.NET Core 应用程序中如何在Web API控制器中获取到请求的请求体(request body)?

.NET C# .NET Core ASP.NET Core .NET 5 1.78K 次浏览
0

在ASP.NET Core的应用程序开发中,试图在OnActionExecuting方法中读取当前请求的请求体(request body),但通过以下的代码读取到的body始终是null,代码如下:

var request = context.HttpContext.Request;
var stream = new StreamReader(request.Body);
var body = stream.ReadToEnd();

那么,在ASP.NET Core 应用程序中,应该如何获取到请求的请求体(request body)呢?

回复 [×]
提交评论
请输入评论内容

2 个回答

  • 0

    在ASP.NET Core,获取当前请求上下文的请求体最简单的方式是创建一个启用rewind功能的中间件,如下:

    然后在Startup.cs中启用这个中间件,如下:

    Rector的个人主页

    Rector

    2021-04-22 回答

    • 0

      在ASP.NET Core的AuthorizationFilter过滤器中,你可以调用当前请求的EnableRewind()方法来读取请求体内容,实现代码如下:

      你也可以将其创建为一个中间件,如下:

      Rector的个人主页

      Rector

      2021-04-22 回答

      我来回答