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;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器