小编ste*_*e22的帖子

.NET 6 Web api:如何获取控制器中的原始正文内容

我正在将 .NET 4.8 Web API 应用程序迁移到 6.0,但用于在控制器方法中检索原始正文内容的代码片段不再有效,并且始终返回空字符串。我所说的原始内容是指用于编写自定义日志的整个 json 结构。在post方法中运行的.net 4.8代码如下:

public async Task<IActionResult> PostAsync([FromBody] FooModel model)
{
    // some code
    string rawContent = string.Empty;
    using (var st = await this.Request.Content.ReadAsStreamAsync())
    {
       st.Seek(0, System.IO.SeekOrigin.Begin);
       using (var sr = new System.IO.StreamReader(st))
       {
            rawContent = sr.ReadToEnd();
       }
    }

    // some more code
}
Run Code Online (Sandbox Code Playgroud)

在.net 6中我这样改编:

    string rawContent = string.Empty;
    using (var reader = new StreamReader(Request.Body,
                  encoding: Encoding.UTF8, detectEncodingFromByteOrderMarks: false))
    {
        rawContent  = await reader.ReadToEndAsync();
    }
Run Code Online (Sandbox Code Playgroud)

尽管进行了一些调整,我仍无法恢复数据。有谁可以给​​我指路吗?谢谢。

斯蒂22

c# asp.net-core-webapi

2
推荐指数
1
解决办法
7758
查看次数

标签 统计

asp.net-core-webapi ×1

c# ×1