1.在Program.cs插入
app.Use(async (context, next)=> { context.Request.EnableBuffering(); await next.Invoke(); });
如果是在ActionFilter里使用
context.HttpContext.Request.EnableBuffering();
最后拿到的body是字符串空,需要在中間件里使用,原因未知
2.ActionFilter拿body
string body;
//重置RequestBody的Position為0 context.HttpContext.Request.Body.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(context.HttpContext.Request.Body, Encoding.UTF8)) { body = await reader.ReadToEndAsync(); }