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 ...
随机推荐
- HDU 1054 Strategic Game(树形DP)
Problem Description Bob enjoys playing computer games, especially strategic games, but sometimes he ...
- javascript于"return obj === void 0"这样的书面理由和优势
得知underscore.js什么时候,查看源代码经常出现的类别似下面的代码: if (context === void 0) return func; if (array == null) retu ...
- Java的进程内缓存框架:EhCache (转)
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. Ehcache缓存的特点: 1. 快速. 2. 简单. 3. 多种缓存 ...
- Java 新特性(3) - JDK7 新特性
http://www.ibm.com/developerworks/cn/java/j-lo-jdk7-1/ JSR292:支持动态类型语言(InvokeDynamic) 近 年来越来越多的基于 JV ...
- SharePoint 2013 配置启用搜索服务
原文:SharePoint 2013 配置启用搜索服务 1.安装完毕SharePoint 2013,新建网站集,点击搜索,出现如下错误(因为没配置,别激动). 2.尝试启动服务器场中的服务之Share ...
- 他们控制的定义(2.3):SurfaceView和SurfaceHolder
这个例子需求和流程: Activity加载它们的定义SurfaceView-> SurfaceView 构造函数:初始化刷.传感器.SurfaceHolder和注册SurfaceHolder的监 ...
- Scrum总结
Scrum总结一个轻量级的软件开发方法 Scrum是一个敏捷开发框架,是一个增量迭代的开发过程..在这个框架整个开发周期由若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的 ...
- CSS3图片轮播效果
原文:CSS3图片轮播效果 在网页中用到图片轮播效果,单纯的隐藏.显示,那再简单不过了,要有动画效果,如果是自己写的话(不用jquery等),可能要费点时间.css3的出现,让动画变得不再是问题,而且 ...
- PL/SQL程序中调用Java代码(转)
主要是学习PL/SQL调用JAVA的方法. 平台:WINDOWS 1.首先使用IDE写好需要调用的java代码,再添加"create or replace and compile java ...
- cocos2d-x 发动机分析:程序如何开始和结束?
原创地址:http://game.dapps.net/gamedev/game-engine/9515.html 感谢原创分享! 怎么样使用 Cocos2d-x 高速开发游戏,方法非常easy,你能够 ...