相关疑难解决方法(0)

WebApi在过滤器中获取后期原始主体

我'创建一个日志,我需要检索请求体以保存在db中.我用HttpActionContext创建了一个过滤器.我尝试通过filterContext.Request.Content.ReadAsStringAsync()恢复.但它总是给我一个空字符串.

LogFilter.cs

public override void OnActionExecuting(HttpActionContext filterContext)
    {
        try
        {
            Task<string> content = filterContext.Request.Content.ReadAsStringAsync();
            string body = content.Result;

            logModel.RequestLog rl = new logModel.RequestLog();
            rl.IP = ((HttpContextWrapper)filterContext.Request.Properties["MS_HttpContext"]).Request.UserHostAddress;
            rl.Type = filterContext.ControllerContext.RouteData.Values["controller"].ToString().ToUpper();
            rl.URL = filterContext.Request.RequestUri.OriginalString;
            rl.Operation = filterContext.Request.Method.Method;
            rl.RequestDate = DateTime.Now;


            filterContext.ControllerContext.RouteData.Values.Add("reqID", new deviceLog.RequestLog().Add(rl).ID.ToString());
        }
        catch { }
        //return new deviceLog.RequestLog().Add(rl);
        base.OnActionExecuting(filterContext);
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-web-api

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

asp.net-mvc ×1

asp.net-web-api ×1

c# ×1