我正在将 .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