获取网络 api 的控制器 return 状态代码
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
方法来访问由操作设置的状态代码。
有关详细信息,请参阅此 link。尽管此 link 描述了 MVC 过滤器的行为,但基本机制与 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
方法来访问由操作设置的状态代码。
有关详细信息,请参阅此 link。尽管此 link 描述了 MVC 过滤器的行为,但基本机制与 Web API 中的过滤器相同。