ASP.NET Core WebAPI 中多次读取 Request.Body 报错的问题

1. 错误信息:”Stream was not readable“

2. 场景:在controller 中第一步,使用如下方法读取Request.Body,第二次再使用该方法读取时,出现”Stream was not readable“的报错。

string rawRequest = string.Empty;
using (var reader = new StreamReader(Request.Body))
{
    rawRequest = await reader.ReadToEndAsync();
}

3. 解决方式

启用缓冲,在第一次读取流之前, 添加如下代码, 并在第二次读取之前重置流的位置,如下所示

// 启用缓冲,允许多次读取 Request.Body
    HttpContext.Request.EnableBuffering();
 // 重置流的位置以供后续读取
    HttpContext.Request.Body.Position = 0;

 

posted @   鲁燕云端  阅读(62)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示