zoukankan      html  css  js  c++  java
  • MVC WebAPI框架里设置异常返回格式统一

    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
    
    }
    

      

  • 相关阅读:
    eclipse快捷键
    ideaIU-2017.3.2版本的免费安装以及2020版本破解
    并发相关问题以及java基础知识
    飞秋软件-局域网内互传
    视频解析网站
    bzoj2458: [BeiJing2011]最小三角形
    bzoj3170: [Tjoi2013]松鼠聚会
    bzoj5056:OI游戏
    dtoj#4224. 小L的占卜
    dtoj#4222. 小b爱旅行(travel)
  • 原文地址:https://www.cnblogs.com/hnsongbiao/p/9371606.html
Copyright © 2011-2022 走看看