前情:
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。当然说起友好,charles其实界面更友好。
我们在电脑上进行网络访问请求调试的时候通常在浏览器中可以使用F12,但是如果要看手机访问时进行了哪些请求那就不那么简单了,而使用 Fiddler 则可以很方便的看到数据请求与响应。
以简书的APP为例:
1.配置Fiddler
打开界面后 点tools 选择第一项 Telerik Fiddler Options HTTPS 照着下图打钩
接着配置端口 这个很重要 要牢记 8888 这些设置完了 Fiddler 最好重启下。
2 配置手机端
cmd窗口下 输入ipconfig 查看下ip 地址
查看到IP为 192.168.5.198
以华为手机P8为例 :
点开设置-- WIFI -长按当前连接的WIFI
点击修改网络 点击 高级选项 选择代理为手动
服务器主机名 输入之前查询到的当前Ip值 192.168.5.198
端口输入 8888
点击 保存
3 下载Fiddler 的安全证书
打开手机自带的浏览器 输入 ip值加端口 192.168.5.198:8888 ip值都换成自己的
点击 FiddlerRoot cerificate 下载签名证书 有的会失败的时候请参照第4点的做法
4 安全证书获取失败解决办法(有可能出现)
手机上没有安全证书 Fiddler 会一直报这个错误
reation of the root cerificate was not successful 根证书创建不成功
CMD 进到Fiddler 安装目录下 cd G:\Fiddler
接着复制以下内容 回车
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
打开Fiddler 在手机上重新打开下载安全证书页面 重新下载就OK 会发现已经可以下载证书
5 Fiddler 抓取请求
手机上的数据已经被成功抓包了 我们以 简书 为例 打开“简书”APP,搜索关键字为“CC先生”
再看Fiddler 抓到的数据。
从上图可以看出简书APP使用的Get请求来完成的搜索功能。
请求的头部:
GET /v2/search?q=cc%E5%85%88%E7%94%9F&count=10 HTTP/1.1
?后跟的就是中文“CC先生”的转码格式,并且我们看到还附加了一个显示结果为10的参数。
响应的格式是Json格式:
可以看出第一个标题就是:[<j>CC</j>说]AI已来,人类测试人员的核心竞争力是什么?
使用Fiddler抓取APP请求的难度就在于 CA证书的导入上面,只要解决了这个问题,其它的和抓取浏览器发起的web请求是一样一样的。