Blazor Server, как получить тело запроса?

В Blazor Server есть несколько способов получить тело запроса. Один из самых простых способов - использовать объект HttpRequest из пространства имен Microsoft.AspNetCore.Http.

Для того чтобы получить тело запроса, необходимо сначала внедрить зависимость IHttpRequestAccessor в ваш класс или компонент Blazor Server. Это можно сделать следующим образом:

@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor

После внедрения зависимости, вы можете получить объект HttpRequest следующим образом:

var request = HttpContextAccessor.HttpContext.Request;

Теперь у вас есть доступ к объекту HttpRequest, из которого можно получить доступ к телу запроса.

Самый простой способ получить тело запроса - это прочитать его как строку. Для этого можно использовать метод ReadAsStringAsync объекта HttpRequest:

string requestBody = await new StreamReader(request.Body).ReadToEndAsync();

Важно отметить, что после чтения тела запроса поток будет полностью прочитан, поэтому, если вы собираетесь использовать его еще раз, вам может потребоваться сбросить поток в начало перед повторным чтением.

Кроме того, в объекте HttpRequest есть и другие методы для получения информации о тело запроса, такие как ReadAsStreamAsync() для чтения его в виде потока, ReadFormAsync() для чтения его как FormCollection и многие другие.

Надеюсь, эта информация поможет вам получить тело запроса в Blazor Server.