相关疑难解决方法(0)

如何在 netcore 3 中多次读取 http 请求正文?

我有一个 netcore 3 API 应用程序,它记录传入的请求,然后将其传递给控制器​​操作。

我的代码如下所示:

public RequestLoggingHandler(IHttpContextAccessor httpContextAccessor)
{
    _httpContextAccessor = httpContextAccessor;
}


protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, RequestLoggingRequirement requirement)
{
    try
    {
        var httpContext = _httpContextAccessor.HttpContext;
        var request = httpContext.Request;

        _repository = (ICleanupOrderRepository)httpContext.RequestServices.GetService(typeof(ICleanupOrderRepository));
        _cache = (IMemoryCache)httpContext.RequestServices.GetService(typeof(IMemoryCache));

        httpContext.Items["requestId"] = SaveRequest(request);

        context.Succeed(requirement);

        return Task.CompletedTask;
    }
    catch (Exception ex)
    {

        throw ex;
    }
}

private int SaveRequest(HttpRequest request)
{
    try
    {
        // Allows using several time the stream in ASP.Net Core
        var buffer = new byte[Convert.ToInt32(request.ContentLength)];
       request.Body.ReadAsync(buffer, 0, buffer.Length);

        var requestContent …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core asp.net-core-3.0

5
推荐指数
1
解决办法
7108
查看次数

标签 统计

asp.net-core ×1

asp.net-core-3.0 ×1

c# ×1