繁体   English   中英

获取Web API的控制器返回状态代码

[英]Getting controller return status code for web api

我正在使用OnActionExecuting方法编写一条记录,如何获取请求的状态代码

LogActionAttribute : ActionFilterAttribute

    public override void OnActionExecuting(HttpActionContext filterContext)
        {

            _stopwatch.Stop();

            var controller = filterContext.RequestContext.RouteData.Values["Controller"];
            var action = filterContext.RequestContext.RouteData.Values["Action"];
            var url = filterContext.Request.RequestUri;
            var Method = filterContext.Request.Method;
            StreamReader reader = new StreamReader(HttpContext.Current.Request.InputStream);
            var statusCode = //get status code 
            var req_txt = reader.ReadToEnd();
            var requestResponseModel = new RequestResponseModel()
            {
                /* Url = request.Url.LocalPath.ToString(),
                 Method = request.HttpMethod,
                 Ip = request.UserHostAddress,
                 RequestDate = DateTime.Now,
                 Expires = response.Expires,
                 RequestParams = req_txt,
                 ContentType = request.ContentType*/

            };

            string json = JsonConvert.SerializeObject(new { id = '2', sifre = 'c' });

            //write string to file
            System.IO.File.AppendAllText(HttpContext.Current.Server.MapPath("~/Tmp/jsondata.txt"), json);


            base.OnActionExecuting(filterContext);
        }

在操作运行之前执行OnActionExecuting 运行操作后,状态码仅提供有意义的信息。 即使有可用的响应对象,您也可以从中获取状态代码,但实际状态代码仅可用
因此,您可以使用OnActionExecuted方法来访问由操作设置的状态代码。

有关详细信息,请参见此链接 尽管此链接描述了MVC筛选器的行为,但Web API中的筛选器的基本机制相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM