如何阅读.net core 3.0中的正文内容?

时间:2019-10-07 18:18:18

标签: .net-core-3.0

我将解决方案从.net core 2.2升级到3.0,并且我想以“适当”的方式记录请求数据/正文。我读到很多东西,比起直接从流中读取,更喜欢使用PipeReader。

.net core 3.0之前的版本,我们使用了流和EnableRewind()方法。看起来像这样:

$

我想了解如何正确使用PipeReader。例如。要在HttpRequest主体中读取为字符串,需要什么代码?我看到有一个ReadAsync()和TryRead()方法,但是我不确定如何正确使用它们。我还看到有一个AsStream()方法,可以像以前一样在流上使用它(但不倒带)。

我很乐意看到任何有关如何执行此操作的示例,因为使用管道似乎需要大量的指针引用。最后,如果我使用PipeReader.AsStream(),是否需要担心倒带?

1 个答案:

答案 0 :(得分:1)

这是我的操作方式:

        HttpRequest.EnableBuffering();
        using var streamReader = new StreamReader(HttpRequest.Body);
        string data = await streamReader.ReadToEndAsync();

EnableBuffering()替换了EnableRewind()