Web Services 如何从最小API动作方法中获取HttpRequest?

j2cgzkjk  于 2023-01-09  发布在  其他
关注(0)|答案(2)|浏览(157)

我写了一个最小的API项目。我想从action方法中获取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);
    }
});
h4cxqtbf

h4cxqtbf1#

只需在委托中注入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

olhwl3o2

olhwl3o22#

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

相关问题