最近在遇到客户端的相关需求,需要进行接口的抓取,故学习fiddler的使用
Fiddler概述
说明
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。
简介
Fiddler 是用C#写出来的,它包含一个简单却功能强大的基于JScript .NET 事件脚本子系统,它的灵活性非常棒,可以支持众多的http调试任务,并且能够使用.net框架语言进行扩展.
同类的工具有: httpwatch, firebug, wireshark。
返回结果
-
200—成功。请求已发送且响应已成功接收。
-
400—坏请求。当目的服务器接收到请求但不理解细节所以无法处理时发生。
-
404—页面找不到。如果目标API已移动或已更新但未保留向后兼容性时发生。
-
500—内部服务器错误。服务器端发生了某种致命错误,且错误未被服务提供商捕获。
Fiddler使用
1 准备工作
以firefox浏览器为例:
fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,需要在浏览器上安装证书。
安装证书
1 打开菜单栏:Tools>fiddler Options>HTTPS
2 勾选Decrypt HTTPS traffic,里面的两个子菜单也一起勾选了
3 导出证书,点右上角Actions按钮, 选第二个选项,导出到桌面,此时桌面上会多一个文件:fiddlerRoot.cer
4 打开firefox右上角浏览器设置》选项》高级》证书》查看证书》证书机构》导入, 打开文件后,会弹出个框,勾选三个选项就完成操作.
2 抓取APP请求
环境准备:
1 电脑上安装fiddler
2 手机和电脑再同一局域网
设置:
1 fiddler>Tools>fiddler Options>Connections 勾选Allow remote computers to connect (记住端口号: 如 8888)
2 查看电脑ip, 使用windows+r, 输入cmd, 进入命令行, 输入ipconfig命令, 记录IPv4地址
3 设置代理
- 手机设置->WLAN设置->选择该wifi,点右边的箭头(有的手机是长按弹出选项框)
- 选择修改网络配置 配置主机名:与主机电脑IP地址保持一致 端口号和上述一致(如 8888)
- 保存起来即可抓取手机请求
抓取APP上 HTTPS请求
如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时手机就需要下载证书了.(如上述web端案例)
- 1 打开手机浏览器输入:http://ip:8888 ,这个中间的host地址就是前面查到的本机ip地址
- 2 页面返回Fiddler Echo Service 200状态码. 点击下载证书即可.
设置过滤
如果同时抓取pc和app端的请求, 请求过多,获取到想要的信息变得复杂,可使用过滤功能
打开fiddler>Tools>fiddler Options>HTTPS>…from remote clients only,勾选这个选项:
- from all processes :抓所有的请求
- from browsers only :只抓浏览器的请求
- from non-browsers only :只抓非浏览器的请求
- from remote clients only:只抓远程客户端请求
如果手机设置代理后,测玩之后记得恢复原样,要不然手机无法正常上网.