前言
可能说起Reqable很多人都不是很熟悉,但是要是提起黄鸟(HttpCanary)想必很多人都可以耳熟能详吧,由黄鸟原班人马打造的新一代国产抓包调试生产力工具——Reqable在前一阵子正式上线了。作为HttpCanary国区和国际区的八年用户,也肯定是收到了Reqable的激活码。
价格
价格想必是很多人感兴趣的问题,目前Reqable是采用订阅式的,有社区版/专业版/企业版供君选择,哪怕是社区版虽然有数量限制,但是也可以做到全功能使用,而且专业版一年才79块钱,不到一顿饭钱,并且是Linux/Mac/Windows同时使用。作者这么搞,真的我直接哭死(作者说2023年末会推出移动端内测,如果也参与多端同时使用的话,我会哭的更大声的)。
抓包
说这么多没有用,让我们打开Reqable直接来一波实测,测试一下用起来效果到底怎么样。
在这里补充一点个人意见,作者为了让界面整洁,省略了文字说明,所有的功能都是直接以图标的形式显示出来的,这一点个人感觉对于新手来说,功能有些难找,熟练了就会好一些。回归正题,有请我们今天的受害人,本次测评的环境如下:
项目 | 值 |
---|---|
Reqable所在平台 | Windows 10 |
抓包App所在平台 | IOS 17 beta |
抓包App | 宠物小组件 |
下载渠道 | App Store |
配置证书
抓包第一步,肯定是配置证书,这里作者很贴心,里面把教程都给好了,直接按照操作进行就可以。按照我箭头指的方向,打开之后按照教程导入证书就ok了。
配置抓包
只需要两步,就可以开始移动端抓包的美妙时刻了。
开始抓包
抓包请求这个页面简洁指数:⭐⭐⭐⭐⭐
可以根据请求或者响应来快速筛选结果。只需要点一下响应,就可以查看请求和响应。个人感觉比较不习惯的一点就是需要先点有上角三个点,再点关闭的这个逻辑有点麻烦。
拦截请求
因为Reqable提供了多种修改请求/响应的方法,所以这里统称为拦截请求。
目前有三种方式,可以实现拦截请求。
- 断点: 实时修改请求和响应,通过设定匹配规则,触发断点后实时修改请求和响应。优点是可控性强,缺点是每一次触发断点条件都要手动控制
- 重写: 重写这个功能可谓是从HttpCanry时代就存在的利器,通过事先匹配的规则,自动修改请求和响应。
- 脚本: 脚本这个功能出的时候,我CPU都烧了,这是揍嘛啊,如果说重写是利器的话,那脚本这个功能简直就算DF-31,有了这个功能,麻麻再也不用担心请求上面有签名了。
(备注:当然,作为一个正经的测评文章,肯定是不会去教唆你去用脚本自动计算签名。所以我们这里只演示修改响应,不会演示伪造请求。)
断点
首先断点这个功能只需要在需要打断点的请求上面右键,并选择断点就可以了。
这就完了???当然不是啊,如果url复杂的话,还可以使用通配符去匹配规则,但是很显然我们这个url还是很简单的。只需要点完成,然后在app重新触发那个请求就可以了。
发现断点的请求的时候,就会出现一个框框。让你修改请求或者是响应,这里一定要注意时间,如果太慢的话,app就会直接当作请求失败处理了。这也是断点的弊端。
重写
Reqable的重写支持5种模式,分别是重定向、替换请求、替换响应、修改请求和修改响应。这五种的话,最常用的应该是修改请求/响应。
这里以修改请求为例,第一步也是右键,然后选择重写->修改响应。匹配模式是支持严格大小写以及正则表达式。
这个细节比较多,具体可以去官方文档查看用法:https://reqable.com/zh-CN/docs/capture/rewrite
脚本
脚本这个功能太牛了,类似于mitmproxy,但是比较下来更简单,更灵活。原本还在吐槽脚本功能的代码框没有代码提示功能,但是去作者的博客下面看了一下代码框的实现过程,瞬间哑然了。
作者博客原文:https://juejin.cn/post/7246672925666885689
好的,又跑题了,脚本这个功能,只需要设置本机的python地址,就可以正常使用了。
在脚本按钮上右键,设置环境。默认会识别本机python,但是如果你和我一样用conda,也可以设置成自己的。
然后依旧是右键请求,选择脚本,就会打开一个代码框。可以在原有的代码上修改。这里我做了一个简单修改响应的小示例。
个人感觉脚本的实现上有点小问题,首先是首行引入的from reqable import *
,严重怀疑是通过自定义了一个reqable包来实现的。这个问题倒是不严重,只是由于目前还没有实现代码提示的功能,所以导致使用内置编辑器写脚本没有提示,使用外部的如:VSCode/PyCharm等,会找不到reqable
这个包,在开发和调试中会带来一点点小小的不便。
如果能实现mitmproxy那种,通过python脚本去运行reqable,想必是极好的(不提实现难度,只提需求,不愧是我)。
调试
俗话说的好,不能Postman的Fiddler不是一款好Charles,做这样主打一款Reqable = Fiddler/Charles + Postman
的产品,自然也支持Postman的功能。这也解决了我是用多年国产Api测试工具,例如某fox某post,使用步骤复杂,并且需要注册登录等复杂操作,各种复杂的功能显得极其臃肿。
Reqable作为这样一款小而美的抓包+测试集合在一起的软件,解决了我抓包之后还需要导入到Api测试软件中的痛点。直接五星好评!!!!
操作更是简单,只需要在抓包的页面右键点一下编辑,就变成了调试!!!!惊不惊喜!!!意不意外!!!!
由于本人使用场景抓包居多,所以测试这个功能就不提什么意见了。
总结
作为这样一款完全国产,定位准确,功能齐全的小而美软件。日常工作是完全可以满足调试与开发的工作。价格便宜,支持全平台,不像某些友商一样,限制平台,限制设备,各种限制。还有什么是不支持它的原因,我可以这样说,能打败Reqable的只有HttpCanary。这样的软件我实在是找不到什么理由不去支持。