我编写了一个最小的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;
});