背景
在iOS开发中,经常会遇到需要抓包的情况,比如查看网络请求、查看接口返回的数据等。而在iOS开发中,常用的抓包工具有Charles、Proxyman等,这些并非不好用,尤其是Proxyman,使用起来非常方便。但是需要付费,免费的只能查看3个域名;而且这些工具使用的时候需要手动进入网络中设置代理,比较麻烦。
无意中发现了Requable,优点是:全平台可用,且抓包功能免费,没有广告;最好用的是可以在手机上一键连接电脑,不需要进入网络设置代理,非常方便。
优点:
- 全平台,iPhone、Mac、Windows、Android都有APP
- 抓包免费,不限制域名数量
- 可以在手机上一键连接电脑,不需要进入网络设置代理
- 可以查看请求头、请求体、响应头、响应体,设置断点,拦截修改返回和相应;(免费版最多生效3个)
缺点:
VPN的开启和关闭标识不够明显,在使用过程中容易被误操作。
使用
以Mac版本来看,如下图,主要有以下几个部分:
区域1,导航部分,在这里可以看到所有的域名,可以选择对指定的域名置顶或添加书签,单击选中时后面会有绿色的勾,代表过滤这个域名;选中多个,则过滤多个;没有选中则代表都显示。
区域2,IP部分,在这里可以编辑对应的端口;和切换显示IP(手机代理和电脑代理);同时有手机协同的二维码,这个功能的使用是,选中电脑的IP,然后点击手机的那个标志,会生成一个二维码,然后手机打开Requable,点击左上角,然后扫一扫,如果和电脑在同一网络下,就可以连接成功,手机连接过一次后,会自动记录和电脑的连接,下次只需要从手机上打开即可。Ps:需要注意的是,手机上提示连接成功后,需要区分,手机代理是否开启,如下图:
区域3,功能区域,里面有是否代理电脑;断点;以及重写;经常用的是重写请求或者重写返回,如下图所示,这里不付费的话,最多同时生效3条规则,但是规则可以删除和编辑。如下图:
同时,针对其他APP代理时,苹果服务访问失败的问题,在SSL代理中,默认跳过了苹果的域名,如下图:
区域4,就是启动和清空。需要区分是否启动,如果和手机协同时,需要注意电脑和手机都要启动,才可以抓到请求。
最终,效果如下,比如手机上打开腾讯地图,如果想要查看某一条请求,可以选中这条请求,然后双击,对应的请求和相应窗口就会出现,可以切换窗口的显示方式(横或者竖),效果如下图。
而如果想要操作对应的请求,则可以在对应请求上右键即可,如下图:
另外,Requable还提供了查看历史抓包记录的功能,免费的只能查看3天,如下图:
上面这些都是电脑端APP的功能。就像之前说的,手机可以转发到电脑上查看代理请求,方便快捷。同时手机端也可以自己查看抓包,功能和Stream类似。