WebApi的输出结果重写 OnActionExecuted
public override void OnActionExecuted(ActionExecutedContext context)
{ if (context.Exception != null && context.ExceptionHandled == false)
{ context.ExceptionHandled = true; int errcode = 500;
if (context.Exception is ErrorCodeException)
{
errcode = (int)(context.Exception as ErrorCodeException).ErrorCode;
}
else
{
//其他异常,需要记日志
try
{
ILogger logger = Global.ServiceProvider.GetService<ILogger<BaseController>>();
logger.LogError(context.Exception, "");
}
catch
{
} } context.Result = new JsonResult(new
{
code = errcode,
msg = context.Exception.Message
});
}
else if (context.Exception == null && context.Result != null && context.Result is BadRequestObjectResult)
{ var objResult = (BadRequestObjectResult)context.Result; if (objResult.Value is ValidationProblemDetails details)
{
context.Result = new JsonResult(new
{
code = 400,
msg = details.Errors.ToJsonString()
});
}
else
{
context.Result = new JsonResult(new
{
code = 400,
msg = "server error"
});
}
}
else if (context.Exception == null && context.Result != null && context.Result is ObjectResult)
{ var objResult = (ObjectResult)context.Result; context.Result = new JsonResult(new
{
code = 200,
data = objResult.Value
});
}
else if (context.Exception == null && context.Result is EmptyResult)
{
context.Result = new JsonResult(new
{
code = 200
});
} base.OnActionExecuted(context);
}
}
WebApi的输出结果重写 OnActionExecuted的更多相关文章
- Python window console 控制台 实现最后一行输出 print 重写
Python window console 控制台 实现最后一行输出 print 重写 # -*- coding: utf-8-*- from __future__ import print_func ...
- asp.net webapi自定义输出结果类似Response.Write()
asp.net webapi自定义输出结果类似Response.Write() [HttpGet] public HttpResponseMessage HelloWorld() { string ...
- windows 重写调试输出
// 使用OutputDebugString很不方便.不能自定义格式化输出.所以重写了一下. #include <tchar.h> #include <windows.h> v ...
- WebApi 服务监控
本文主要介绍在请求WebApi时,监控Action执行的时间,及Action传递的参数值,以及Http请求头信息.采用log4net记录监控日志,通过日志记录的时间方便我们定位哪一个Action执行的 ...
- WebApi 自定义过滤器实现支持AJAX跨域的请求
我想关于此类话题的文章,大家一搜铺天盖地都是,我写此文的目的,只是对自己学习过程的记录,能对需要的朋友有所帮助,也百感荣幸!!!废话不多说,直接上代码! 客户端:很简单的AJAX请求 <html ...
- 简析ASP.NET WebApi的跨域签名
之前的文章写了关于WebApi的跨域问题,当中的方法只是解决了简单请求的跨域问题而非简单请求的跨域问题则没有解决. 要弄清楚 CORS规范将哪些类型的跨域资源请求划分为简单请求的范畴,需要额外了解几个 ...
- MVC和WEBAPI(一)
什么是MVC (模型 视图 控制器)? MVC是一个架构模式,它分离了表现与交互.它被分为三个核心部件:模型.视图.控制器.下面是每一个部件的分工: 视图是用户看到并与之交互的界面. 模型表示业务数据 ...
- Asp.Net WebApi服务端解决跨域方案
1.特性方式 主要是继承ActionFilterAttribute,重写OnActionExecuted方法,在action执行后,给响应头加上一个键值对. using System.Web.Http ...
- ASP.NET Core 入门(2)(WebApi接口请求日志 Request和Response)
以前 .NET Framework WebApi 记录接口访问日志,一般是通过Filter的方式进行拦截,通过重写ActionFilterAttribute的OnActionExecuting实现拦截 ...
- .Net Core Mvc/WebApi 返回结果封装
一.背景 为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理. .Net Core 中返回结果的处理与 .Net Framework 中的处理不一样. .Net Core ...
随机推荐
- 复习:Java基础-泛型方法
泛型 大家都很熟悉了 泛型方法呢 可能很多小伙伴都有混淆,今天来稍微复习一下 泛型方法(普通方法) public class Test<T> { public T f(T c) { //注 ...
- 为什么要重写equals()?
为什么要重写equals()? Equals和 == 的区别: ==:是个运算符, 判断是否相等,基本数据类型进行判断 也可判断两个对象相等,比较两个对象的哈希码值 Equals:是个Object类的 ...
- Python——CSS(层叠样式表,Cascading Style Sheets)、选择器(Selectors)
CSS(层叠样式表,Cascading Style Sheets)是一种用于描述文档样式和布局的样式表语言.它可以与HTML结合使用,用于控制网页的外观和格式.以下是CSS的主要特点和一些基本概念: ...
- Harbor私有镜像仓库搭建
为什么选择Harbor 你可能会问既然我们已经有了 Docker 镜像仓库为什么还需要 Harbor 呢?嗯,Harbor 是 Docker 镜像仓库的企业级扩展,用途更广泛.这些新的企业级功能包括: ...
- Docker 使用及常见问题总结
一.使用 1.docker run -it 命令中的 it 参数是什么含义 在Docker中,-it是两个选项的组合,用于在交互式模式下运行容器.让我解释一下它们的含义: -i 或 --interac ...
- 【.NET开发福音】使用Visual Studio将JSON格式数据自动转化为对应的类
前言: 这段时间一直在做一个第三方平台的对接,对接第三方其实无非就是请求调用第三方的相关接口接收返回过来的相关参数.因此在这个过程中就会涉及大量的JSON响应参数或者请求参数转化为对应的实体类的情况, ...
- spring-mvc 系列:HttpMessageConverter(@RequestBody、RequestEntity、@ResponseBody、@RestController、ResponseEntity、文件上传下载)
目录 一.@RequestBody 二.RequestEntity 三.@ResponseBody 四.SpringMVC处理json 五.@RestController 六.ResponseEnti ...
- 低代码开发不靠谱?看低代码开发在物联网APP开发中的应用
摘要:云编排式物联APP开发平台可通过云端可视化编排开发,边端远程自动化部署,云边协同管理运维的方式,实现物联网APP快速开发,海量边端应用管理. 0 引言 当前,物联网技术正在推动人类社会从&quo ...
- 云小课|聊一聊DRS的数据过滤特性
[本期推荐专题]在DevOps市场中,华为云DevCloud拔得头筹,看它如何助力企业面对商业环境瞬息万变快速响应. [摘要] 目前,DRS已支持其他云.本地IDC.ECS自建MySQL.SQL Se ...
- Java中观察者模式与委托,还在傻傻分不清
摘要:本文通过对比Java中观察者模式与委托,希望能够让开发者分清二者的区别和联系. 本文分享自华为云社区<Java中观察者模式与委托的对比>,作者: 小小张自由--张有博 . 代码背景 ...