1.新建一个webapi 项目。

2.新建筛选器文件,用户在接口执行前后进行特性操作。

public class MyActionWebApiAttribute : ActionFilterAttribute{public EnumHeader HeaderCode { set; get; }public override bool AllowMultiple{get{return false;}}public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext){base.OnActionExecuted(actionExecutedContext);HttpResponseMessage response = actionExecutedContext.ActionContext.Response;try{response.Content.Headers.Clear();string HeaderCodeStr = "text/html";if (HeaderCode == EnumHeader.application_xml){HeaderCodeStr = "application/xml";}else if (HeaderCode == EnumHeader.application_json){HeaderCodeStr = "application/json";}response.Content.Headers.Add("Content-Type", HeaderCodeStr + "; charset=utf-8");}catch (Exception ex){}}}//endpublic enum EnumHeader{text_html,application_json,application_xml}//end

重要点:

A)ActionFilterAttribute 必须要引入System.Web.Http.Filters;

B)

public override bool AllowMultiple{get{return false;}}

防止筛选器执行两遍。

C) HttpResponseMessage response = actionExecutedContext.ActionContext.Response;

response.Content.Headers.Clear();

response.Content.Headers.Add("Content-Type", "text/html; charset=utf-8");

用于更改头文件。

3.在webapi中注册筛选器

public static void Register(HttpConfiguration config){config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{action}",defaults: new { id = RouteParameter.Optional });config.Filters.Add(new MyActionWebApiAttribute());// 取消注释下面的代码行可对具有 IQueryable 或 IQueryable<T> 返回类型的操作启用查询支持。// 若要避免处理意外查询或恶意查询,请使用 QueryableAttribute 上的验证设置来验证传入查询。// 有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=279712。//config.EnableQuerySupport();// 若要在应用程序中禁用跟踪,请注释掉或删除以下代码行// 有关详细信息,请参阅: http://www.asp.net/web-api
            config.EnableSystemDiagnosticsTracing();}

重要点:

A)路径配置改为{action} 否则会有许多问题。

B)config.Filters.Add(new MyActionWebApiAttribute());

注册筛选器

4.使用

    [HttpPost][MyActionWebApi(HeaderCode = EnumHeader.application_json)]public Site SiteList(){Site sites = new Site { SiteId = 1, Title = "test", Uri = "http://www.cnblogs.com/hcfan" };return sites;}

public class Site{public int SiteId { get; set; }public string Title { get; set; }public string Uri { get; set; }}

ok:success

转载于:https://www.cnblogs.com/hcfan/p/6019548.html

webapi 初识 net相关推荐

  1. ASP.NET Core WebAPI中使用JWT Bearer认证和授权

    为什么是 JWT Bearer ASP.NET Core 在 Microsoft.AspNetCore.Authentication 下实现了一系列认证, 包含 Cookie, JwtBearer,  ...

  2. 初识Nginx四:nginx代理服务器配置缓存

    文章目录 一.背景 二.配置 三.测试 四.注意点 一.背景 在上篇文章<初识Nginx二:配置一个反向代理服务器>中,我们成功通过Nginx的反向代理功能访问了上游的应用服务器. 在实际 ...

  3. JavaScript之WebAPI

    新鲜出炉,前端三剑客到今天就介绍结束啦~ 目录 1.什么是WebAPI 2.DOMAPI 2.1获取元素 2.2事件初识 2.3操作元素 2.4操作节点 3.两个案例 3.1猜数字案例 3.2表白墙案 ...

  4. 开源组件websocket-sharp中基于webapi的httpserver使用体验

    一.背景 因为需要做金蝶ERP的二次开发,金蝶ERP的开放性真是不错,但是二次开发金蝶一般使用引用BOS.dll的方式,这个dll对newtonsoft.json.dll这个库是强引用,必须要用4.0 ...

  5. day3----编码-集合-深浅copy-文件操作-函数初识

    day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...

  6. ⑥python模块初识、pyc和PyCodeObject

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  7. ASP.NET WebAPI 11 参数验证

    在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性. ModelState 在ApiController中一个ModelState属性用来获取参 ...

  8. 初识java类的接口实现

    初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...

  9. vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码

    大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...

最新文章

  1. JS中window.event事件使用详解
  2. 微软云计算业务增长,或成全球最具价值上市公司
  3. 如何判断java对象是否为String数组
  4. vb中多个串口通讯_VB中的42个关键字,你知道都是哪些吗?
  5. 那些藏在你键盘里的emoji,背后到底有着怎样的故事?
  6. 快速找到message toast弹出的application代码位置
  7. C语言宏定义##连接符和#符的使用及其它宏定义注意事项
  8. 06.Qt菜单栏工具栏学习(一)
  9. scrapy.crawler.CrawlerProcess
  10. JAVA深复制(深克隆)与浅复制(浅克隆)
  11. *08TensorFlow2.0基础--8.3维度变换
  12. 对此人的嚣张你们怎么看
  13. CCNA的计分方法(转)
  14. hc05模块android代码,Arduino使用HC05蓝牙模块与手机连接
  15. 解读SPSS多元方差分析中的多因素多变量的相互影响
  16. 编码——隐匿在计算机软硬件背后的语言上
  17. 深夜碎碎念,肿瘤NGS基因检测的寒冬
  18. OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站
  19. Python的下载和安装教程
  20. GC导致线上CPU超100%

热门文章

  1. linux系统上tftp服务器的安装配置
  2. python处理excel的方法有哪些_Python操作Excel简单方法
  3. object类型replace掉$、转换成float、运算
  4. Python——创建文件data.txt,共100000行,每行存放一个1~100之间的整数
  5. Ubuntu Linux服务器安装JDK8
  6. APP自动化测试系列之Desired Capabilities详解
  7. Mac上的IDEA安装配置maven
  8. 丹麦红十字会与多家公司合作推出区块链支持的灾难债券
  9. 比特币市值目前是白银68%
  10. Bit.com BCH期权上线以来日交易量持续翻倍