public override void OnException(HttpActionExecutedContext actionExecutedContext) { //异常处理 base.OnException(actionExecutedContext); //重新封装 WebAPiResults result = new WebAPiResults(); if (actionExecutedContext.Exception.Data.Count > 0) { foreach (DictionaryEntry de in actionExecutedContext.Exception.Data) { result.ErrorMessage = de.Value.ToString(); result.Code = de.Key.ToString(); } } else { result.ErrorMessage = actionExecutedContext.Exception.Message; result.Code = "未知编号"; } result.Success = false; result.StatusCode = System.Net.HttpStatusCode.BadRequest; //结果转为自定义消息格式 HttpResponseMessage httpResponseMessage = JsonHelper.toJson(result); // 重新封装回传格式 actionExecutedContext.Response = httpResponseMessage; }
public override void OnActionExecuting(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); if (!actionContext.ModelState.IsValid) { WebAPiResults result = new WebAPiResults() { Success = false, Code = "E100009", Message = "请求无效", StatusCode = HttpStatusCode.BadRequest }; foreach (var item in actionContext.ModelState.Values) { foreach (var error in item.Errors) { result.ErrorMessage += error.ErrorMessage + "|"; } } HttpResponseMessage httpResponseMessage = JsonHelper.toJson(result); } if (_IsDebugLog) { Stopwatch stopWatch = new Stopwatch(); actionContext.Request.Properties[Key] = stopWatch; string actionName = actionContext.ActionDescriptor.ActionName; // 获取域名 string domainName = actionContext.Request.RequestUri.AbsoluteUri; //获取模块名称 // module = filterContext.HttpContext.Request.Url.Segments[1].Replace('/', ' ').Trim(); //获取 controllerName 名称 string controllerName = actionContext.Request.RequestUri.Authority; //获取ACTION 名称 string actionName1 = actionContext.ActionDescriptor.ActionName; Debug.Print(getParametes(actionContext)); Debug.Print(actionContext.Request.RequestUri.AbsoluteUri); stopWatch.Start(); } }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { if (actionExecutedContext.Exception != null) { return; //异常不在这里处理 } base.OnActionExecuted(actionExecutedContext); var noPackage = actionExecutedContext.ActionContext.ActionDescriptor.GetCustomAttributes <NoPackageResult>(); if (!noPackage.Any()) { //执行封装 if (actionExecutedContext.ActionContext.Response != null) { WebAPiResults result = new WebAPiResults(); result.StatusCode = actionExecutedContext.ActionContext.Response.StatusCode; var a = actionExecutedContext.ActionContext.Response.Content.ReadAsAsync <object>(); if (!a.IsFaulted) { // 取得由 API 返回的资料 result.Data = a.Result; if (result.Data == null) { result.Code = "99"; result.Message = "未找到任何数据!"; } else { result.Code = "0"; } } result.Success = actionExecutedContext.ActionContext.Response.IsSuccessStatusCode; //结果转为自定义消息格式 HttpResponseMessage httpResponseMessage = JsonHelper.toJson(result); // 重新封装回传格式 actionExecutedContext.Response = httpResponseMessage; } } }