.объем ядра 3.0 промежуточного входа по pipereader
Я перенес свой исходный код на .net core 3.0. у меня было промежуточное программное обеспечение для регистрации запроса и ответа на запрос api.
Это промежуточное программное обеспечение использовало stream (HttpContext.Request.Тело и HttpContext.Response.Body) для получения данных запроса и ответа json.
Теперь я хочу заменить поток на PipeReader (HttpContext.Request.BodyReader). Я могу получить данные запроса, но мое тело запроса не проверено. Я получаю следующую ошибку.
"errors": { "$": [ "The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0." ],
Наверное, в какой-то момент мне придется сбросить положение тела запроса. (Я не уверен).
Для справки я загружаю образец проекта на один диск пример проекта.
Пожалуйста, мне нужно исправить проблему, обсужденную выше.
Также, пожалуйста, научите меня, как регистрировать данные ответа. Должен ли я использовать поток, как это было в .net core 2.2?
Что я уже пробовал:
Я попытался сбросить HttpRequest.Поток тела в исходное положение. Но получите ошибку, так как это уже готовый поток.
Я попытался использовать HttpRequest.EnableBuffering(), но я получил исключение из утилизируемого объекта. (HttpRequest.EnbleBuffering() можно использовать с потоком. Поэтому это не допустимый вариант).
Если я отключу метод to LogRequest (), то промежуточное программное обеспечение будет работать нормально.