Как мне прочитать содержание тела в .net core 3.0? - PullRequest
0 голосов
/ 07 октября 2019

Я обновляю свое решение с .net core 2.2 до 3.0 и хочу регистрировать данные / тело запроса "правильным" способом. Я много читаю, что использование PipeReader предпочтительнее чтения прямо из потока.

До .net core 3.0 мы использовали потоки и метод EnableRewind (). Выглядело это примерно так:

HttpRequest.EnableRewind();
HttpRequest.Body.Position = 0;
var sr = new StreamReader(HttpRequest.Body);
var myData = sr.ReadToEnd();
HttpRequest.Body.Position = 0;
return myData;

Я хотел бы понять, как правильно использовать PipeReader. Например. какой код необходимо прочитать в теле HttpRequest в строку? Я вижу, что есть методы ReadAsync () и TryRead (), но я не уверен, как правильно их использовать. Я также вижу, что есть метод AsStream (), который я смог использовать в потоке, как раньше (но без перемотки).

Я хотел бы увидеть любые примеры того, как это сделатьпотому что кажется, что работа с конвейером требует большого количества ссылок на указатели. Наконец, если я работаю с PipeReader.AsStream (), нужно ли беспокоиться о перемотке?

...