3

I write a minimal API project. I Want to get HttpRequest from action Method, but I didn't get HttpRequest instance:


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);
    }
});

2 Answers2

1

Simply inject HttpRequest in your delegate.

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 });
});

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

diegosasw
  • 13,734
  • 16
  • 95
  • 159
-1
app.MapPost("api/Create",  ctx =>
    {
        HttpRequest httpRequest = ctx.Request;
    });
Wai Ha Lee
  • 8,598
  • 83
  • 57
  • 92
Summpot
  • 9
  • 1
  • 3