zoukankan      html  css  js  c++  java
  • WebApi 全局使用filter

     先上代码:

        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
    
                config.Filters.Add(new ApiExceptionAttribute());
            }
        }
    

     WebAPi的全局过滤器不同于MVC,MVC需要在FilterConfig里面添加,WebApi必须在WebApiConfig里面设置

        public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
            }
        }
    

     WebApi异常处理过滤器:

        public class ApiExceptionAttribute : ExceptionFilterAttribute
        {
            /// <summary>
            /// 控制器方法中出现异常,会调用该方法捕获异常
            /// </summary>
            /// <param name="filterContext">提供使用</param>
            public override void OnException(HttpActionExecutedContext filterContext)
            {
                WriteLog(filterContext);
                string jsonResult = new { code = 1, message = filterContext.Exception.Message }.ToJson();
                HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(jsonResult, System.Text.Encoding.GetEncoding("UTF-8"), "application/json") };
                filterContext.Response = result;
                base.OnException(filterContext);
            }
        }
    
  • 相关阅读:
    django自学
    Oracle
    Linux查看日志常用命令
    Appium使用
    jmeter性能测试
    数据库连接
    redis相关
    ubuntu系统软件安装以及相关命令
    LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger
    sqlserver查询表大小
  • 原文地址:https://www.cnblogs.com/hycms/p/9671404.html
Copyright © 2011-2022 走看看