【问题标题】:Getting controller return status code for web api获取 web api 的控制器返回状态码
【发布时间】:2019-09-05 07:15:20
【问题描述】:

我正在用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);
        }

【问题讨论】:

    标签: c# .net api wep


    【解决方案1】:

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

    详情请见link。尽管此链接描述了 MVC 过滤器的行为,但基本机制与 Web API 中的过滤器相同。

    【讨论】:

    • 请帮助web api。不适用于 MVC
    • 使用的类不同,但基本行为是相同的。所以其余的答案也适用于 Web API。我注释了链接。
    • 好的,我做到了。那么我在哪里可以捕获查询的正文
    猜你喜欢
    • 2022-02-09
    • 2015-02-02
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多