zoukankan      html  css  js  c++  java
  • WebApi 通过拦截器设置特定的返回格式

      

    public class ActionFilter : ActionFilterAttribute

             /// <summary>

            /// Action执行之后由MVC框架调用
            /// </summary>
            /// <param name="actionExecutedContext"></param>
            public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
            {
                var requestUrl = actionExecutedContext.Request.RequestUri.AbsolutePath;
                if (requestUrl.Equals("/api/restful/order") && actionExecutedContext.Response != null
                  && actionExecutedContext.Response.StatusCode == HttpStatusCode.OK)
                {
            //获取原始返回结果 var datastr = actionExecutedContext.ActionContext.Response.Content.ReadAsAsync<object>().Result;
    //定义需要返回的格式类型 var responseModel = new ResponseModel() { errormsg = "", requestId = ((Titan.Api.Web.Outside.RESTful.Model.ExtApiResultBase)datastr).RequestId }; HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(responseModel), Encoding.GetEncoding("UTF-8"), "application/json") }; actionExecutedContext.Response = result; } base.OnActionExecuted(actionExecutedContext); }  
    }

    最后需要在Global中配置     config.Filters.Add(new ActionFilter());

  • 相关阅读:
    HTTP协议
    javascript常用数组排序及二分查找
    垃圾回收与内存管理
    js的数据存储机制和数据类型
    js中的深复制与浅复制
    斐波那契数列的实现
    认识python中的浅复制与深复制
    微信浏览器中弹窗高度适配
    “ 时,分,秒” 活动倒计时
    互联网协议
  • 原文地址:https://www.cnblogs.com/sunqiang/p/9717944.html
Copyright © 2011-2022 走看看