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;
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
        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;
                }
            }
        }