在上篇文章《Mac OS安装Fiddler》介绍Fiddler工作原理,以及在Mac如何安装Fiddler。计划在Mac OS系统介绍Fiddler功能使用,但发现在实操过程中用户体验不够友好,操作起来不方便。最终还是选择在Windows系统演示操作。
下面讲述Fiddler功能主要有Filters使用,HTTPS请求,AutoResponder用法,Composer用法,如何抓取App数据包。
1.查看请求内容
在左侧session列表选中某个会话请求后,点击右侧“Inspectors”选项卡,可以查看该会话内容,上半部分是展示请求内容,下班部分是展示响应内容。如下图所示:
2.使用Filters过滤请求
Fldder会抓取所有HTTP请求,导致左边窗口的session窗口不断输出请求的URL,对调试造成干扰。通过设置过滤规则,过滤掉那些不需要的请求。可以使用Filters过滤请求,下面说说是如何使用Filters。
-
在工具栏中勾选Filters选项卡,在勾选左上角的Use Filters即可开启过滤器,下方Hosts设置项是最常用的过滤条件:Zone和Host:
Zone:指定只显示内网(Intranet)或互联网(Internet)的内容
Host:可以过滤不显示、过滤显示和标记指定会话。
假如只把
www.baidu.com
请求显示在会话请求框的话。在Host选项中,选中“Show only the following Hosting”。在输入框输入www.baidu.com
。-
点击“Changes not yet saved”按钮进行保存。
点击“Actions”选中“Run Filterset now”运行,就能看到过滤后的结果。
3.查看HTTPS请求
Fiddler没有经过配置是无法看到https请求的数据,如下图所示:
幸好Fiddler可以通过伪造CA证书来欺骗浏览器和服务器,从而实现解密HTTPS数据包的目的。解密HTTPS步骤如下:
点击菜单栏Tools—> Options.
在弹出框中,选中“HTTPS”,勾选页面的“Decrypt HTTPS Traffic”,再点击“Actions”选择“Trust Root Certificate”,会弹出以下对话框。
选择Yes安装即可。
再次访问HTTPS请求,能看到解析过数据,如下图所示:
4.AutoResponder用法
AutoResponder允许拦截指定规则的请求,并返回本地资源或Fiddler资源,进行调试功能。
譬如生产环境的页面样式或页面处理有问题,当测试环境无法重新生产环境问题是。可以利用Fiddler的AutResponder功能,把需要修改的文件重定向的本地文件,这样可以基于生产环境修改并验证,确认后再发布。
如果服务端提供接口和数据格式有问题,为了不影响开发进度,前端可以继续调用那个接口,通过Fiddler将响应内容指定到本地数据文件上。
现在使用博客园的找回登录用户名为例子。操作步骤如下:
- 在Fiddler找的https://passport.cnblogs.com的/GetUsername.apsx请求。
将GetUsername.apsx文件保存到本地(如果本地已经有文件,可以跳过该操作)。选择文件后右击,点击“save”—〉“Response”—〉“Response Body”。保存到本地。
在文件GetUsername.apsx中添加
alert('博客园')
,如下图所示:
-
直接打开AutoReponder标签设置,勾选一下两个复选框,开启Fiddler的重定向功能。
- 第一个复选框的作用是开启和禁用自动重定向功能,当勾选后就可以添加重定向规则。
- 第二个复选框是指允许未匹配到请求能正常响应。打勾才能让其他的请求继续;否则其他未匹配到的请求都会以 404状态返回。
所以我们需要再这两个地方打勾。如下图所示:
- 下面创建重定向规则,将目标GetUsername.apsx的HTTP请求重定向到本地文件。可以通过“Add Rule"按钮手动添加规则。现在URL已经出现session列表中,可以直接拖动过来。
6.接着修改规则。点击下方的下拉框,选择“Find a file…”,就可以选择本地文件作为返回内容。选择刚才保存GetUsername.apsx文件。
-
重新刷新页面,可以看到以下效果。
5.Composer用法
在Composer面板中,我们可以向服务器发送自定义请求,可以手动创建新的请求,可以从session列表中拖拽现有请求。可以在RequestBody的输入框修改请求的参数。
6.抓取iPhone/Android设备数据包
使用Fiddler抓取移动端设备的数据包,其实很容易。设置代理 ,使得Fiddler获取移动端数据请求。
首先确保PC机和手机同一个局域网。打开Fiddler,点击菜单栏中Tools—> Options。
-
勾选Connections选项卡中的“Allow remote computers to connect" 允许远程链接。
- 勾选后需要重启Fiddler
- 默认代理端口是8888,可以不需要修改。
- 将手机端的代理设置为PC机的IP和端口(假设PC机的IP是192.168.43.5)
打开手机浏览器,访问PC的地址+端口。
打开页面中点击“FiddlerRoot certificate”,下载并安装证书。
-
安装完证书,使用手机应用进行访问,就可以看到截取到的数据包。使用美团App测试访问的效果。
现在介绍Fiddler常用功能,很多功能可以去探索和学习,后面再会更新关于Fiddler文章。