1、原理web
Fiddler是http协议调试代理工具,它可以记录客户端和服务器之间的全部 HTTP请求,能够针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至能够修改服务器返回的数据,功能很是强大。浏览器
原理:客户端和服务器之间创建一个代理服务器,监听客户端发出的请求和服务器返回的响应结果服务器
2、Fiddler Windows使用cookie
2.1 Fiddler安装配置网络
(1)去官网http://www.telerik.com/fiddler或者其余渠道下载安装包,双击安装程序,按照提示安装便可。数据结构
(2)启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框。并发
(3)点击切换到“Connections”选项卡,而后勾选“Allow romote computers to connect”后面的复选框,https选项卡中的capture https connects和decrypt https tracffic,而后点击“OK”按钮,重启fiddler。app
(4)在本机命令行输入:ipconfig,找到本机IP地址。编辑器
(5)https抓包请求设置:工具
手机和电脑链接同一个网络(OPPO-TEST),打开手机浏览器,输入http://ip:端口号,点击前往:见下图:
前往以后会跳转到整数下载页,点击FiddlerRoot certificate下载证书。点击下载以后,安装证书并起个名字(随意),点击肯定
要求设置一个手机密码,本身设置一个便可。
更改手机无线网的代理:手机系统设置-无线网-点击高级,代理选择手动,主机名是电脑的IP地址,端口号就是fiddler的端口号(8888),与浏览器访问时的IP 端口号保持一直,点击肯定便可。
六、操做手机,打开软件商店,电脑Fiddler会显示一些http请求信息,抓包成功。
2.2Fiddler抓包分析
1、面板展现
Session:
#号列中的图标,每种图标表明不一样的响应类型,具体的类型包括:
统计/数据:
关于HTTP请求的性能和其余数据分析:
咱们能够从中看出一些基本性能数据:如DNS解析的时间消耗是8ms,创建TCP/IP链接的时间消耗是8ms等等信息。
2. Inspectors。
分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不一样格式查看每一个请求和响应的内容。JPG 格式使用 ImageView 就能够看到图片,HTML/JS/CSS 使用 TextView 能够看到响应的内容。Raw标签能够查看原始的符合HTTP标准的请求和响应头。Auth则能够查看受权Proxy-Authorization 和 Authorization的相关信息。Cookies标签能够看到请求的cookie和响应的set-cookie头信息。
3、Filter
Fiddler另外一个比较强大的功能。Fiddler提供了多维度的过滤规则,足以知足平常开发调试的需求。以下图示:
经常使用过滤规则:
a.host和zone过滤。能够过滤只显示intranet或则internet的HTTP请求
也能够选择特定域名的HTTP请求
4.Timeline 请求响应时间
在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:
2.3 Fiddler刷接口
2.3.1 方法一 Replay
最简单的刷接口方式
用fiddler抓包,抓取要刷的url请求,点选url,而后不断输入R(注意是大写的),每输入一次就请求一次这个接口,连续快速地点击R就能够达到刷接口的目的
这个R键也能够用这个按钮代替
2.3.2 方法二 shift+R
控制发出请求的次数
按照上面方法一的第一步,抓取url请求;点选url,而后点击shift+r (注意此次是小写r,做用等于点击replay按钮),此时会弹出询问窗口,在窗口中能够输入请求的次数:
如上图所示,点击OK以后,就会再发送5条请求;
2.3.3 方法三 Break+GO
设置断点拦截请求,再并发访问接口
先设置断点,按如下路径设置:Rules->Automatic Breakpoints->Before Requests,完成设置后,fiddler会把全部的请求所有拦截住,不会发给接口服务器;
在客户端作相应操做,fiddler能够看到抓包结果,可是会拦截住请求;而后按照方法一的第二步操做,选中url以后,不断输入R,能够看到fiddler拦截了不少请求(也能够按照方法二,控制请求数量);
而后去掉断点Rules->Automatic Breakpoints->disabled,点击Go键,把拦截住的请求所有释放,就能够达到并发访问接口的目的。
2.4 Fiddler篡改数据
2.4.1 before requests
Before requests,也就是发送请求以后,可是fiddler代理中转以前,这时能够修改请求的数据。
场景举例:商店rank榜单有分页处理,想测试不一样的size和start参数产生的影响
1.打开工具栏rules→automatic breakpoints →before requests
2.选中所要修改的url的参数,修改参数的值,执行
修改后:
点击run to completion执行:
2.4.2 after responses
After responses ,也就是服务器响应以后,可是在fiddler将响应中转给客户端以前,这时能够修改响应的结果。
场景举例:软件榜榜单,某个应用的返回名称想让他显示异常
1.打开工具栏rules→automatic breakpoints →after responses
2.选中所要修改的url的参数,修改参数的值,执行
修改内容以下:
浏览器中展现修改后的效果:
注意点:after responses是直接请求响应后阻断,不足在于一次修改只能使用一次,修改须要时间,对于app有设置超时页面容易出现还没改完app就已经超时了。
2.4.3 映射到本地文件
先将response响应修改后保存到本地,使用AutoResponder来自动响应,弥补了after responses方法的缺点。
a)修改接口数据:执行一次这个接口(经过app发请求或者Fiddler的Composer功能),选中要修改的接口,在菜单栏中选择Edit》Unlock for Editing,以后接口的响应就会变成可编辑状态这时就能够编辑了
b)保存修改后的接口响应到本地。
c )设置自动响应本地文件。在AutoResponder中Add Rule,设置须要自动响应的接口,和响应的内容,这里响应到本地的文件(即上一个步骤保存的文件),注意选择底部的Find a file会打开个窗口,直接选择上一步骤的文件便可。
d )完成以上步骤就能够实现自动响应修改后的内容了,能够先Relay下这个接口的响应验证是否生效,确认生效后再到app查看是否有样式等问题.
注意点:必定要在fiddler编辑器可编辑状态下篡改response数据再保存,不要先保存response再到本地去修改,会破坏数据结构,致使出现篡改不成功。
2.5 Fiddler模拟慢网速
菜单—>Rules—>Customize Rules 打开脚本,搜索“request-trickle-delay”
request-trickle-delay表明每KB的数据被上传时会被延时多少毫秒,response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒
二、 菜单—>Rules—>Performances—>Simulate Modem Speeds勾选后以上设置才会生效。