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;

浙公网安备 33010602011771号