小编Rya*_*ule的帖子

如何在action过滤器的OnActionExecuted中获取请求参数

如标题,是否可以获取请求参数?

我尝试从请求正文中获取它,但失败了,task.Result为零。看来请求正文是空的。

任何人都可以帮助我,我将不胜感激。

代码如下:

public class LogFilter : Attribute, IActionFilter  
{
     private ILogger<LogFilter> _logger;
     private ITestAService _service;

     public LogFilter(ILogger<LogFilter> logger, ITestAService service)
     {
          _logger = logger;
          _service = service;
     }

     public void OnActionExecuted(ActionExecutedContext context)
     {
         var content = new StringBuilder();
         using (Stream sm = context.HttpContext.Request.Body)
         {
            int count = 0;
            byte[] buffer = new byte[1024];
            StringBuilder builder = new StringBuilder();
            var task = sm.ReadAsync(buffer, 0, 1024);
            if (task.Result > 0)
            {
                content.Append(Encoding.UTF8.GetString(buffer, 0, count));
            }
         }
     }
}
Run Code Online (Sandbox Code Playgroud)

parameters request action-filter onactionexecuted .net-core

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