[英]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.