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)
{
}
}
}//end
public 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 = , 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
webapi 初识 net的更多相关文章
- 初识Asp.Net WebApi
using System;using System.Collections.Generic;using System.Linq;using System.Net.Http;using System.T ...
- 初识WebAPI
(一)Web API简介: 目前使用Web服务的三种主流的方式是:远程过程调用(RPC),面向服务架构(SOA)以及表征性状态转移(REST),其中REST模式的Web服务与复杂的SOA和RPC对比来 ...
- WebAPI测试概念及postman初识
什么是接口? ------ 某个对象和外界交互的部分 消息交互接口:基于soap的web service ---- http协议 web api ------- http协议 diame ...
- .net core系列之初识asp.net core
.net core已经发布了2.0版本,相对于1.0的有了很大的完善,最近准备在项目中尝试使用asp.net core,所以就进行了一些简单的研究. 初识asp.net core分为以下几个部分: 1 ...
- ASP.NET Core WebAPI中使用JWT Bearer认证和授权
目录 为什么是 JWT Bearer 什么是 JWT JWT 的优缺点 在 WebAPI 中使用 JWT 认证 刷新 Token 使用授权 简单授权 基于固定角色的授权 基于策略的授权 自定义策略授权 ...
- ASP.NET Web API 2系列(三):查看WebAPI接口的详细说明及测试接口
引言 前边两篇博客介绍了Web API的基本框架以及路由配置,这篇博客主要解决在前后端分离项目中,为前端人员提供详细接口说明的问题,主要是通过修改WebApi HelpPage相关代码和添加WebAp ...
- webapi - 使用依赖注入
本篇将要和大家分享的是webapi中如何使用依赖注入,依赖注入这个东西在接口中常用,实际工作中也用的比较频繁,因此这里分享两种在api中依赖注入的方式Ninject和Unity:由于快过年这段时间打算 ...
- ASP.NET Core MVC/WebAPi 模型绑定探索
前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用 ...
- Asp.Net WebApi核心对象解析(下篇)
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...
随机推荐
- 跨域问题和django中实现跨域
跨域问题 1.同源策略(浏览器的安全功能): 请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同 2.CORS跨域资源共享 实现CORS通信的关键是服务器,只要服务器实 ...
- The 2018 ACM-ICPC Asia Qingdao Regional Contest(青岛网络赛)
A Live Love 水 #include <algorithm> #include<cstdio> #include<cstring> using namesp ...
- Linux安全层详解
1 bastion(安全堡垒系统)通常配置两个服务: 1 服务定义系统的功能: 2 服务支持远程访问: 原则: 1 不需要某个软件卸载掉: 2 需要某个软件但不使用就不要激活: 为各个bastion系 ...
- 《鸟哥的Linux私房菜》学习笔记(9)——条件判断
一.条件判断表达式 条件测试类型: 整数测试 字符测试 文件测试 条件测试的表达式 [ ...
- 4152: [AMPPZ2014]The Captain
4152: [AMPPZ2014]The Captain Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1561 Solved: 620[Submi ...
- P2590 [ZJOI2008]树的统计(LCT)
P2590 [ZJOI2008]树的统计 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把 ...
- 关于前后端日期处理 开发注意事项 jquery.tmpl()函数的使用
1当后端将日期传到前段的时候 我们通常会需要将日期转为制定格式 除了平常我们使用的前段插件将日期转好 spring @datetimeFormat 注解 这些形式外 我们还可以在实体里通过get方法进 ...
- Linux之我有你也有-共享平台NFS服务器搭建
Linux之我有你也有-共享平台NFS服务器搭建 最近因工作需要,所以要搭一个共享的服务器用于存储.实现你有我有大家有的共享的和谐局面.想到了NFS-Network File System.接下来我便 ...
- php伪随机数漏洞 以及脚本php_mt_seed的使用教程
前几天在群里看到了一个题目,发现自己没有接触过这个伪随机数这个漏洞,在此记录下. 搜索这两个函数 mt_scrand() mt_rand() mt_scrand(seed)这个函数的意思,是通过分发s ...
- Python-S9——Day109-Git及Redis
1.初识Git: 2.Git版本控制之stash和branch: 1.初识Git: 1.1 Git是什么? Git是一个用于帮助用户实现“版本控制”的软件: 1.2 Git安装: GIt官网:http ...