如何从最小api操作方法获取HttpRequest



我编写了一个最小的API项目。我想从action Method获得HttpRequest,但我没有获得HttpRequest实例:


app.MapPost("api/Create", async (RequestValidationDTO request) =>
{
try
{
HttpRequest httpRequest = Request.  //There is error. How I can get Request ?
return await ApiCaller.MakeRequest<ResponseValidationDTO>(uri + "/Create", JsonConvert.SerializeObject(request), request.Token);
}
catch (Exception ex)
{
return new ResponseValidationDTO(true, "Unhandled exception has occured." + ex.Message);
}
});

只需在您的委托中注入HttpRequest。

app.MapPost("api/Create", (HttpRequest request) =>
{
var userAgent = request.Headers.UserAgent;
var customHeader = request.Headers["x-custom-header"];
return Results.Ok(new { userAgent = userAgent, customHeader = customHeader });
});

请参阅https://learn.microsoft.com/en-us/aspnet/core/fundamentals/use-http-context?view=aspnetcore-7.0

app.MapPost("api/Create",  ctx =>
{
HttpRequest httpRequest = ctx.Request;
});

最新更新