WebApi及Fiddler工具
WebApi及Fiddler工具
1.概述
曾经有人问:asp.net mvc和asp.net webapi区别在哪?这个其实不好回答的。可能因为mvc模式盛行的原因,webapi显得孤芳自赏了,让人觉得它是鸡肋。其实webapi应该比mvc更符合web应用与开发本质,功能也不弱于mvc。
mvc4和5出现时,才有webapi出现,至于它为何出现?我们没有必要研究这些,能玩好它就行了。这时的webapi和mvc的最大区别是路由管道不一致,各实现自己的一套。到了mvc6时代,微软也意识到,代码基本差不多,何不重用?所以,现在mvc6已经统一了mvc和webapi路由。
说到这,可能还是觉得mvc和webapi机制和实现起来,看起来长得很象呀。是的,没错。其实webapi最核心的是使用REST风格。关于何谓REST?建议你另行了解。这里大概说一下,webapi中的Action方法名是使用HTTP方法名或其前缀,当然也可以不按照这些,在方法上标注HTTP方法名特性也行的。这么说,有些绕了,抱歉!
2.创建项目
为了演示说明,还是创建一个ASP.NET 5项目模板的 GiveCase.WebApies:

注:已经有了Values控制器示例了。
3.Fiddler
这个工具对模拟HTTP请求调试很有帮助的,建议会使用。官方网址http://www.telerik.com/fiddler
4.控制器
打开Controllers\ValuesController.cs并修改为:

using System.Collections.Generic;
using Microsoft.AspNet.Mvc; namespace GiveCase.WebApies.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
//模拟数据
static List<string> data = InitList();
private static List<string> InitList()
{
var list = new List<string> { "value1", "value2", "value3" };
return list;
} // GET: api/values
[HttpGet]
public IEnumerable<string> Get()
{
return data;
} // GET api/values/5
[HttpGet("{id}")]
public string Get(int id)
{
return data[id];
} // POST api/values
[HttpPost]
public void Post([FromBody]string value)
{
data.Add(value);
} // PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody]string value)
{
data[id] = value;
} // DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
data.RemoveAt(id);
}
}
}

4.测试演示
运行网站,使用fiddler工具。
1.get方法查询所有

Execute执行结果:

2.get方法查询单个

注:索引是从0开始的,所以查询id为1的结果是集合的第二个元素。
3.post方法添加一个
在请求头加上:
Accept:application/xml
Content-Type:application/json

执行成功后(注意状态码是204,其实应该是201,后续文章再纠正):

再用前面说的get方法查询所有:

ok!添加成功!
4.put方法修改一个
我们演示把value1改为value5

执行后,再用get方法查询所有:

OK,也修改成功!
5.delete方法删除一个
我们演示把第4个value4删除

执行后,再用get方法查询所有:

ok,值为value4没了!
5.小结
本章内容也不多,只是操作字符串集合,也没有把它输出到html页面上,更没有演示使用实体集合(这是实际应用必须的)。关于http状态码知识也没有介绍到。代码写得也不够严谨,比如索引访问越界不存在等错误或异常处理。
我们学习知识,慢慢来吧!先到此为止!
WebApi及Fiddler工具的更多相关文章
- Fiddler - 工具配置及在ios抓取不了https的解决方法
一.首先,官网下载最新版fiddler工具: https://www.telerik.com/fiddler 二.打开fiddler,点击Tools - Options 我电脑上的各项配置如下图(也可 ...
- fiddler 工具使用配置
前言: 之前为了手动测试项目组之间提供的接口,确定到底是哪一个接口出了问题.一般情况下,我们都直接采用了 Google 浏览器上,F12 后,Network 找到想要的 URL,然后,直接在浏览器上访 ...
- Fiddler工具详细介绍
百度看到Fiddler工具的详细介绍,转载收藏,侵权删,原文地址:http://blog.csdn.net/qq_21445563/article/details/51017605 前部分讲解Fidd ...
- fiddler工具条、状态栏、请求信息栏各按钮的作用
1.fiddler工具条 2.fiddler状态栏 3.请求信息栏
- 使用Fiddler工具发送post请求(带有json数据)以及get请求(Header方式传参)
Fiddler工具是一个http协议调试代理工具,它可以帮助程序员测试或调试程序,辅助web开发. Fiddler工具可以发送向服务端发送特定的HTTP请求以及接受服务器回应的请求和数据,是web调试 ...
- web手工项目04-测试报告的核心内容-HTTP请求和响应-fiddler工具进行抓包
回顾 登录功能测试(需求分析(输入分析,处理分析,输出分析),数据构造,编写用例) 测试点设计思路--扩展(相关业务,特殊角度-分支,异常,逆向) 流程图元素与画法(开始/结束,路径,数据,判定,步骤 ...
- 『言善信』Fiddler工具 — 2、HTTP请求内容详解
目录 1.HTTP协议介绍 2.使用Fiddler抓取一个请求 3.НТТP请求报文 (1)НТТP请求报文说明 (2)请求行 (3)请求头(Request Header) (4)请求体 4.НТТР ...
- 『言善信』Fiddler工具 — 3、Fiddler界面布局详解【菜单栏】
目录 (一)Fiddler界面布局介绍 (二)菜单栏 1.File文件菜单: 2.Edit编辑菜单: 3.Rules规则菜单: 4.Tools工具菜单: 5.View视图菜单: 6.Help帮助菜单: ...
- 『言善信』Fiddler工具 — 6、Fiddler界面布局详解【命令行和状态栏】
目录 1.命令行 2.状态栏 1.命令行 命令行在Fiddler的左下方的黑色窗口,也叫QuickExec,可以调用 Fiddler的内置命令. 这一系列内置的函数用于筛选和操作会话列表中的sessi ...
随机推荐
- ASP中文件上传组件ASPUpload介绍和使用方法
[导读]要实现该功能,就要利用一些特制的文件上传组件.文件上传组件网页非常多,这里介绍国际上非常有名的ASPUpload组件 1 下载和安装ASPUpload 要实现该功能,就要利用一些特制的文件上 ...
- 开源 自由 java CMS - FreeCMS2.0 举APP产生信息数据
项目地址:http://www.freeteam.cn/ 生成信息数据 生成当前管理网站下同意移动APP訪问的栏目的信息页面. 从左側管理菜单点击生成信息数据进入. 您能够选择须要生成的栏目,然后点击 ...
- Oracle 常见函数使用汇总
INSTR用法:INSTR(string,subString,position,ocurrence)解释:string:源字符串 subString:要查找的子字符串 positi ...
- 关于int全区变量读写的原子性
关于int全区变量读写的原子性 关于int变量的读写是否原子性网上有非常多讨论,貌似不同平台不同,这里自己做实如今arm9平台測试.这里要注意原子性并不是指一条汇编才原子,实际上即使一次赋值编 ...
- 跑ssis分组差错:没有关联“”。假设无法找到一个特定的连接元件,Connections 这种错误发生的收集
跑ssis分组差错:没有关联"".假设无法找到一个特定的连接元件,Connections 这种错误发生的收集. 在网上搜了一下,解决方法: 打开SqlServer Configur ...
- CSS截取字符串,额外的文本显示以省略号
最近的诀窍css还有这么叼炸天的侧~~~ 善待似论坛页面,头像70px,但username不限啊,English中国能够.你说如果他采取"我的名字是这么长啊.你该怎么办呢".那老和 ...
- 编译的依赖不能vs的release工程
前言: 今天,我们正在做一个ocx插件的时候,放到刚装好win7系统的虚拟机上面注冊,弹出以下的一个错误提示: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...
- 左右v$datafile和v$tempfile中间file#
v$datafile关于存储在文件中的数据视图的信息,v$tempfile查看存储在一个临时文件中的信息. 有两种观点file#现场,首先来看看官方文件的定义: V$DATAFILE This vie ...
- 联想G480安装CentOS电缆驱动器
最近.联想G480 32本机安装现场CentOS 6.5. 发现.总是无法使用有线网络. 必须安装必要的驱动,搜集了资料,安装过程例如以下: 1. 必备的软件 安装前,须要下列的软件依赖包. sudo ...
- 【IOS开发笔记01】学生管理系统(上)
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...