webapi 初识 net
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相关推荐
- ASP.NET Core WebAPI中使用JWT Bearer认证和授权
为什么是 JWT Bearer ASP.NET Core 在 Microsoft.AspNetCore.Authentication 下实现了一系列认证, 包含 Cookie, JwtBearer, ...
- 初识Nginx四:nginx代理服务器配置缓存
文章目录 一.背景 二.配置 三.测试 四.注意点 一.背景 在上篇文章<初识Nginx二:配置一个反向代理服务器>中,我们成功通过Nginx的反向代理功能访问了上游的应用服务器. 在实际 ...
- JavaScript之WebAPI
新鲜出炉,前端三剑客到今天就介绍结束啦~ 目录 1.什么是WebAPI 2.DOMAPI 2.1获取元素 2.2事件初识 2.3操作元素 2.4操作节点 3.两个案例 3.1猜数字案例 3.2表白墙案 ...
- 开源组件websocket-sharp中基于webapi的httpserver使用体验
一.背景 因为需要做金蝶ERP的二次开发,金蝶ERP的开放性真是不错,但是二次开发金蝶一般使用引用BOS.dll的方式,这个dll对newtonsoft.json.dll这个库是强引用,必须要用4.0 ...
- day3----编码-集合-深浅copy-文件操作-函数初识
day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...
- ⑥python模块初识、pyc和PyCodeObject
一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...
- ASP.NET WebAPI 11 参数验证
在绑定完Action的所有参数后,WebAPI并不会马上执行该方法,而要对参数进行验证,以保证输入的合法性. ModelState 在ApiController中一个ModelState属性用来获取参 ...
- 初识java类的接口实现
初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...
- vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码
大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...
最新文章
- JS中window.event事件使用详解
- 微软云计算业务增长,或成全球最具价值上市公司
- 如何判断java对象是否为String数组
- vb中多个串口通讯_VB中的42个关键字,你知道都是哪些吗?
- 那些藏在你键盘里的emoji,背后到底有着怎样的故事?
- 快速找到message toast弹出的application代码位置
- C语言宏定义##连接符和#符的使用及其它宏定义注意事项
- 06.Qt菜单栏工具栏学习(一)
- scrapy.crawler.CrawlerProcess
- JAVA深复制(深克隆)与浅复制(浅克隆)
- *08TensorFlow2.0基础--8.3维度变换
- 对此人的嚣张你们怎么看
- CCNA的计分方法(转)
- hc05模块android代码,Arduino使用HC05蓝牙模块与手机连接
- 解读SPSS多元方差分析中的多因素多变量的相互影响
- 编码——隐匿在计算机软硬件背后的语言上
- 深夜碎碎念,肿瘤NGS基因检测的寒冬
- OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站
- Python的下载和安装教程
- GC导致线上CPU超100%
热门文章
- linux系统上tftp服务器的安装配置
- python处理excel的方法有哪些_Python操作Excel简单方法
- object类型replace掉$、转换成float、运算
- Python——创建文件data.txt,共100000行,每行存放一个1~100之间的整数
- Ubuntu Linux服务器安装JDK8
- APP自动化测试系列之Desired Capabilities详解
- Mac上的IDEA安装配置maven
- 丹麦红十字会与多家公司合作推出区块链支持的灾难债券
- 比特币市值目前是白银68%
- Bit.com BCH期权上线以来日交易量持续翻倍