簡體   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