Настройка проекта: Asp .NET core 2.1, Web Api в среде Docker.
Я хочу получить размер запросов GET с параметрами запроса в нашем API для целей регистрации.У меня есть фильтр действий, реализующий IActionFilter в проекте.OnActionExecuting () - это метод, в котором я интерпретирую запрос для этой цели.
Но я всегда получаю нулевое значение в context.HttpContext.Request.ContentLength свойство.Кроме того, прочитайте тело считывателем потока в текстовой переменной, которая также пуста.Это допустимое место, чтобы проверить это, или я имею в виду другое свойство ActionExecutingContext?
public void OnActionExecuting(ActionExecutingContext context)
{
string requestSize = "";
//Try 1:
requestSize = Convert.ToString(context.HttpContext.Request.ContentLength);
//Try 2:
//Since the Try 1 is null, following doesn't really matter. But still tried.
using (var bodyReader = new StreamReader(context.HttpContext.Request.Body))
{
var bodyAsText = bodyReader.ReadToEnd();
if (string.IsNullOrWhiteSpace(bodyAsText) == false)
{
requestSize = bodyAsText.Length;
}
}
// Console.WriteLine(requestSize );
}
Ожидается номер байта для размера запроса, но он становится нулевым.