环境:whistle:2.9.59
whistle手机抓包(ios可以抓小程序的包;安卓机不能抓小程序的包,但是小程序的有开发者工具就够用了)
以安卓手机为例(手机跟电脑要连同一个wifi)
1.电脑安装whistle
npm install -g whistle // 直接使用npm全局安装
w2 help // 安装结束可以输入w2 help查看帮助信息,并验证是否安装成功
2.电脑启动whistle
w2 start // 如果需要更改默认运行端口8899,可以使用w2 start -p 端口号,如w2 start -p 8011
// w2 restart // 重启
// w2 stop // 手动停止
注意点:w2 start 启动后会有好几个网址,访问时如果有些访问不到(代理访问有些被拦截,这时用自己电脑IP那一个网址访问即可),"1、2、3"可以都试一下!
3.配置wifi代理
电脑和手机连的都是xxxx的wifi,手机中设置wifi(xxxx)的代理服务器。选择手动,输入电脑IP地址、端口号要跟whistle一致,保存即可。
4.手机安装证书
电脑打开浏览器,输入网址:http://127.0.0.1:8899
点击HTTPS,安卓手机可以直接通过手机浏览器扫描二维码下载安装证书或者在手机浏览器输入代理的网址如xx.xx.xx.xx:8899(对应电脑启动的网址),然后下载rootCA.crt安装包,下载证书。ios手机可以在浏览器网址上输入rootCA.crt下载证书。
打开手机浏览器,点击【扫一扫】,扫描证书的二维码,扫描后,弹出网址:rootCA.crt,点击【下载】。
注意点:
① 要是实在下载不下来,就通过电脑浏览器下载证书,将证书复制黏贴到手机,点击证书安装。
② 安装信任证书rootCA.crt,有时候直接点击安装会出现无法安装,这时需要手动导入安装:
打开手机 设置 -> WLAN -> 高级设置 -> 安装证书 -> 找到rootCA.crt文件点击安装(自定义命名一个证书名称)
5.抓包(可抓APP、公众号H5、手机浏览器等)
此时,我们可以在http://127.0.0.1:8899中的【Network】-【Inspectors】中查看到点击所传输的信息。
6.自定义规则代理配置
简单使用场景:比如我要验证一个H5系统的不同状态页,页面是根据不同状态code来展示不同样式的,但是这个状态code又不方便拿到,得遇到请求接口报异常才能进入对应状态页面,所以这个时候我们就可以模拟该页面对应的请求接口,当我们在手机点击该页面时,就代理到我们设置的rules配置的链接了。
另外的还有很多功能,比如在Plugins配置一些mock等数据,然后在Rules去配置规则调用,这样在手机端访问,就会对应匹配到Plugins配置的内容。