webApi里设置全局异常返回格式
今天为了设置api返回格式统一,在网上找了一推资料,各种资料参差不齐的,最后自己捣鼓,终于弄出来了,直接上代码

/// <summary>

/// 消息代理处理,用来捕获这些特殊的异常信息

/// </summary>

public class CustomErrorMessageDelegatingHandler : DelegatingHandler

{

protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)

{

return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>((responseToCompleteTask) =>

{

HttpResponseMessage response = responseToCompleteTask.Result;

HttpError error = null;

if (response.TryGetContentValue<HttpError>(out error))

{

//自定义错误处理

//error.Message = "这个接口调用出错了";

}

if (error != null)

{ //这是本人创建的一个返回类

var resultMsg = new ResultMsg { StatusCode = (int)StatusCodeEnum.HttpUrlEror, Info =error.MessageDetail };

return new HttpResponseMessage { Content = new StringContent(resultMsg.ToJson(),

System.Text.Encoding.GetEncoding("UTF-8"), "application/json"), StatusCode = HttpStatusCode.OK };

}

else

{

return response;

}

});

}

}

  

然后就是注册该cs文件,找到Global.asax文件

protected void Application_Start()

{

AreaRegistration.RegisterAllAreas();

//FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

//RouteConfig.RegisterRoutes(RouteTable.Routes);

//BundleConfig.RegisterBundles(BundleTable.Bundles);

GlobalConfiguration.Configure(WebApiConfig.Register);

GlobalConfiguration.Configuration.Filters.Add(new ErrorHandler());

}

  

最后大功告成,效果:

{

"StatusCode": 404,

"Info": "在控制器“StudyTask”上找不到与该请求匹配的操作。",

"Data": null

}

  

MVC WebAPI框架里设置异常返回格式统一的更多相关文章

  1. WebAPI框架里设置异常返回格式统一

    直接上代码 /// <summary> /// 消息代理处理,用来捕获这些特殊的异常信息 /// </summary> public class CustomErrorMess ...

  2. WebApi(一)-实现跨域返回格式支持json

    1.创建webapi

  3. MVC WebAPI中响应客户端请求返回图片

    // GET api/values public HttpResponseMessage Get() {     Image img = GetImage();     MemoryStream ms ...

  4. 在WebApi项目里使用MiniProfiler并且分析 Entity Framework Core

    在WebApi项目里使用MiniProfiler并且分析 Entity Framework Core 一.安装配置MiniProfiler 在现有的ASP.NET Core MVC WebApi 项目 ...

  5. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  6. ASP.NET Core 2.2 WebApi 系列【八】统一返回格式(返回值、模型验证、异常)

    现阶段,基本上都是前后端分离项目,这样一来,就需要前后端配合,没有统一返回格式,那么对接起来会很麻烦,浪费时间.我们需要把所有接口及异常错误信息都返回一定的Json格式,有利于前端处理,从而提高了工作 ...

  7. 修改 mvc webapi 默认返回 json 格式

    web api 默认的已 xml 格式返回数据 现在开发一般都是以 json 格式为主 下面配置让 webapi 默认返回 json ,在需要返回 xml 时只需要加一个查询参数 datatype=x ...

  8. WebAPI异常捕捉处理,结合log4net日志(webapi框架)

    一:异常捕捉处理 首先,在我们需要区分controller的类型.是全部基层controller,还是Apicontroller.(当然一般API框架,用的都是Apicontroller).两者异常处 ...

  9. MVC WebAPI 三层分布式框架开发

    版权声明:本文为博主原创文章,未经博主允许不得转载. 前言:SOA(面向服务的架构)是目前企业应用开发过程中普遍采用的技术,基于MVC WebAPI三层分布式框架开发,以此适用于企业信息系统的业务处理 ...

随机推荐

  1. AngularJS 中的 factory、 service 和 provider区别,简单易懂

    转自:http://blog.csdn.net/ywl570717586/article/details/51306176 初学 AngularJS 时, 肯定会对其提供 factory . serv ...

  2. 关于Select2下拉框组件

    文档如下: https://select2.org/configuration/options-api

  3. java 环境变量配置 详解!

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Django-urls路由系统

    Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. ...

  5. 解决Maven依赖报错问题

    问题现象:从svn上签下源代码,本地执行打包命令,提示如下错误: [ERROR] Failed to execute goal on project dddwriter: Could not reso ...

  6. eclipse中无法查看引用的jar包源码

    本文来源:http://blog.csdn.NET/zljjava/article/details/7545270(这篇博客也是转载的,向最原始的作者致敬) 1.下载JAD jad官方地址的官方下载地 ...

  7. 微信小程序——部署云函数【三】

    部署login云函数 不部署的话,点击获取openid会报错,报错如下 解决方案呢,很明显的已经告诉我们了 搭建云环境 开通 同意协议 新建环境 每个小程序账号可以创建两个免费环境 确定 部署后再次请 ...

  8. Matplotlib学习---用matplotlib画柱形图,堆积柱形图,横向柱形图(bar chart)

    这里利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://datasets.flowingdata.com/hot-dog-cont ...

  9. 【BZOJ3816】【清华集训2014】矩阵变换 稳定婚姻问题

    题目描述 给出一个\(n\)行\(m\)列的矩阵\(A\), 保证满足以下性质: 1.\(m>n\). 2.矩阵中每个数都是\([0,n]\)中的自然数. 3.每行中,\([1,n]\)中每个自 ...

  10. Ionic3报错Error: Uncaught (in promise): Error: StaticInjectorError

    ERROR Error: Uncaught (in promise): Error: StaticInjectorError[Geolocation]: StaticInjectorError[Geo ...