先上代码:

    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);
}
}

WebApi 全局使用filter的更多相关文章

  1. Asp.net Core WebApi 全局异常类

    通过全局异常类,所有程序中遇到的错误都会被拦截,并友好的返回结果. 1.自定义一个全局异常处理类中间件 using Microsoft.AspNetCore.Http; using Newtonsof ...

  2. Vue定义全局过滤器filter

    这里介绍的是多个过滤器一起添加到全局中 1.创建方法 首先src下新建plugin文件夹,用来存放插件. 在plugin文件夹内新建filters.js,编写方法(如隐藏手机号码等等...) /** ...

  3. WebApi全局异常处理方式

    自定义错误消息 public class ErrorMessage:DelegatingHandler { protected override Task<HttpResponseMessage ...

  4. WebApi 全局异常与局部异常

    全局异常过滤器 public class ApiExceptionFilter:ExceptionFilterAttribute { private IHostingEnvironment _env; ...

  5. IAuthorizationFilter学习笔记(权限控制)以及非全局的filter

    第一步:新建类CheckLoginFilter实现接口IAuthorizationFilter.请注意接口位于命名空间using System.Web.Mvc; public void OnAutho ...

  6. WebApi的自定义Filter

    using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using Syst ...

  7. Asp.Net WebAPI中Filter过滤器的使用以及执行顺序

    转发自:http://www.cnblogs.com/UliiAn/p/5402146.html 在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行 ...

  8. Core WebApi项目快速入门(二):Filter详解

    Core的核心是DI,面向AOP的编程方式.在.NetCore中AOP的实现很大程度上依赖于Filter.下面就Core WebApi中的Filter进行举例. 其中鉴权中心我个人认为是比较重要的概念 ...

  9. 陨石坑之webapi使用filter

    首先为什么说这是一个坑,是因为我们在webapi中使用filter的时候也许会先百度一下,好吧,挖坑的来了,我看了好几篇文章写的是使用System.Web.Mvc.Filters.ActionFilt ...

随机推荐

  1. python框架之Flask(6)-flask-sqlalchemy&flask-script&flask-migrate使用

    整合SQLAlchemy 安装 pip3 install flask-sqlalchemy 简单使用 from flask import Flask from flask_sqlalchemy imp ...

  2. Django中CBV源码解析

    使用 关于FBV和CBV的使用在之前有提到,点击穿越. 准备 首先在视图中创建一个类并继承 django.views.View 类,在类中可定义各种请求方式对应执行的函数(函数名为请求方式名称小写). ...

  3. linux tcp server

    这里分析两种模型 A: 来源于网络,http://bbs.chinaunix.net/thread-4067753-1-1.html,号称50万QPS B: 本人自己写的,我觉得性能上比上述的模型要好 ...

  4. PHP on CentOS (LAMP) and wordpress

    http://php.net/manual/zh/install.windows.php https://www.unixmen.com/install-wordpress-centos-7-linu ...

  5. form提交xml文件

    --为何ajax提交不了xml?--原因:Request.Form["Data"]这种获取参数方式,原本就不是mvc路由参数获取方式,这是Asp.net中webfrom页面获取参数 ...

  6. Qt 的坐标系统

    QWidget *q = , Qt::WindowStaysOnTopHint); q->setWindowTitle(QObject::tr("父窗口widget")); ...

  7. Beta阶段敏捷冲刺日志的集合贴

    Beta阶段冲刺前计划与安排:http://www.cnblogs.com/software-teamwork/p/9060118.html Day1(5.22):https://www.cnblog ...

  8. 关于var、let、const的故事

    对于一门编程语言来说,变量与常量是再正常不过的两种,JavaScript是一直解释型的弱类型语言. JavaScript中变量或者常量可以用var.let.const(后两者是ES6的新特性). 1. ...

  9. undefined 和null的区别

    undefined 和null的区别null是一个表示"无"的对象,转为数值时为0:undefined是一个表示"无"的原始值,转为数值时为NaN.undefi ...

  10. “Nested exception: 前言中不允许有内容"错误处理

    最近在做一个小项目,使用org.dom4j.DocumentHelper.parseText方法时一直报错”Nested exception: 前言中不允许有内容",这个parseText解 ...