. Net Core 3.1 Поток ввода запроса на чтение для Xml и Json - PullRequest
0 голосов
/ 27 марта 2020

Я написал фильтр действий для записи заголовков запросов и тела приложения. Net Core 3.1 Web API. Это прекрасно работает, когда нет привязки Controller-Action / Model.

Есть идеи?

void SetRequestBody(HttpContext context)
{
    context.Request.EnableBuffering();
    RequestBody = new List<LogDataEntity>();
    String bodyString = new StreamReader(context.Request.Body).ReadToEndAsync().Result;
    if (!String.IsNullOrEmpty(bodyString))
    {
        IEnumerable<String> body = bodyString.Chunk();
        Int32 i = 0;
        foreach (String part in body)
        {
            if(!String.IsNullOrEmpty(part))
            {
                RequestBody.Add(new LogDataEntity()
                {
                    DataType = HttpEnums.eLogDataType.RequestBody,
                    Data = part,
                    Sequence = i
                });
            }

            ++i;
        }
    }
    if (context.Request.Body.CanSeek)
        context.Request.Body.Seek(0, SeekOrigin.Begin);
}
...