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 ...
随机推荐
- 如何更好地理解和使用Github
只知道几乎在顶部看到一对Github用通俗易懂的解释: 你或许不懂怎样造一辆凯迪拉克,但你能够驾驶凯迪拉克. 你或许不懂Evernote是用什么技术做出来的,但你也能够使用Evernote. 你或许不 ...
- Codeforces Round #267 (Div. 2) A
题目: A. George and Accommodation time limit per test 1 second memory limit per test 256 megabytes inp ...
- 阿里巴巴2014研发project师实习生面试经历
java研发project师的初面是在上周三进行的,终于结果到了晚上才出,而没有通过的则是一结束网上就更新了状态.之后阿里通知这周三,也就是今天进行二面. 凑巧的是今早被舍友吵醒,中午那个困啊,但没时 ...
- 第五十九届冠军(使用C++设计一个类不能被继承)
称号:使用C++设计一个类不能被继承. 分析:这是Adobe 公司2007 的笔试题最新校园招聘. 应聘者的C++基本功底外,还能考察反应能力,是一道非常好的题目. 分析:C++中父类的构造函数会调用 ...
- 最具体的历史centos下一个 postfix + extmail + dovecot + maildrop 安装注意事项2014更新
这篇文章原本是2008年发表的,近期几天照此笔记又安装了一遍系统.这里更新一下记录. 作者:wangdy 本文发表于 http://blog.csdn.net/aryang/article/deta ...
- 《Linux Device Drivers》第十四章 Linux 设备型号
基本介绍 2.6内核设备模型来提供的抽象叙述性描述的一般系统的结构,为了支持各种不同的任务 电源管理和系统关机 用户空间与通信 热插拔设备 设备类型 kobject.kset和子系统 kobject是 ...
- spring+websocket综合(springMVC+spring+MyBatis这是SSM框架和websocket集成技术)
java-websocket该建筑是easy.儿童无用的框架可以在这里下载主线和个人教学好java-websocket计划: Apach Tomcat 8.0.3+MyEclipse+maven+JD ...
- Dev GridView RowCellClick活动MouseDown事件
GridView可编辑.在无声的思想左键点击"进入编辑". 将GridView的OptionsColumn.AllowEdit至false离开时触发RowCellClick. 但有 ...
- avalon组件
如何做一个avalon组件 在avalon1.5中改用更直观的自定义标签来声明组件,废掉ms-widget,引入更强大的生命周期管理,可以让组件任意套嵌. 组件是由JS,HTML,CSS构成 JS 以 ...
- .net卸载程序制作
原文:.net卸载程序制作 方法一: 在打包项目中添加文件msiexec.exe(一般在c:\windows\system32(系统目录中)找到). 在文件系统视图中选择应用程序文件,在msiexec ...