Reqable是一款适用于多平台的专业HTTP开发与调试工具,全面支持HTTP1、HTTP2及HTTP3(QUIC)协议,兼具简洁的操作体验、丰富的功能特性与高效的运行性能,能够有效提升程序开发及测试人员的工作效率。该工具的使用需要具备一定的网络基础,因此更适合开发、测试、网络、安全、爬虫等领域的专业技术人员,或在相关专业人士的指导下进行操作。
这款全平台覆盖的API工具,无需登录即可使用,以轻量、高效、的特性,为开发者打造从调试到测试的一体化解决方案,让API相关工作更便捷流畅。它支持捕获各类应用的HTTP网络流量,助力技术人员快速精准排查网络异常;同时具备完善的API测试与管理功能,还能实现多设备协同操作,有效提升开发与测试环节的工作效率。
Reqable的前身是HttpCanary,我们对UI及所有功能进行了重新设计,以此来实现与桌面端功能的一致性。
若您需要对移动端应用的流量数据进行分析,需先在移动设备上完成CA根证书的安装操作,相关的Android与iOS系统证书安装步骤指引,我们已整合至Reqable工具中。
重要须知
若您通过电脑端App开展流量分析,需将电脑端的CA根证书安装至移动端设备;若您直接使用移动端App进行流量分析,则要把移动端的CA根证书安装到移动端设备上。
Reqable为不同设备生成的CA根证书是各自独立的。若想让多台设备使用同一份CA根证书,可先导出.p12格式的证书文件,再将其导入到其他需要的设备中。
信息
在移动应用的初始设置阶段,若选择协作模式并通过扫码完成与电脑的配对连接,系统会自动将电脑端的CA根证书同步至移动设备,使两者的CA根证书保持一致。
Android
Android系统中的证书主要有两类,一类是供普通用户使用的证书,另一类是属于系统层面的证书。普通用户使用的证书所在的目录,用户无需特殊权限就能完成证书的添加与移除操作;而系统层面的证书所在的目录,只有在获取Root权限后,才能够对其中的证书进行添加或删除操作。
Reqable需要用户预先在电脑上安装好ADB工具,它会借助ADB工具来检测连接到电脑的Android设备的证书安装情况,涵盖系统证书和用户证书的安装状态。
关于ADB工具
Google推出的Android设备连接工具ADB,开发者可通过官方渠道获取安装包,完成安装后需正确配置ANDROID_HOME与PATH这两个环境变量,随后重启Reqable应用即可正常使用该工具。
系统证书
Reqable能够检测系统证书的安装状态,无论设备是否经过Root操作。不过,一键安装证书的功能仅对已Root的设备开放,该功能支持Android 5.0至15的系统版本。
若系统证书已完成安装,那么用户证书的安装步骤即可略过。
用户证书
用户证书需由用户手动安装,在手机端打开设置后,可按以下步骤操作:
进入系统配置界面,依次找到安全相关选项、加密与凭据管理入口,点击安装证书功能,选择CA证书类型,然后选中已导出的证书文件进行安装操作,此过程需要通过用户身份验证环节。
请注意,对于未获取Root权限的设备,Reqable无法对用户证书的安装情况进行检测,因此会持续显示证书安装状态为未知。
当设备运行的系统版本为Android 7.0或更高时,即便已完成用户证书的安装步骤,开发人员仍需在项目内添加特定的配置项,以此确保应用能够正常信任该用户证书。
警告
这种方法仅适用于Android原生应用,对基于Flutter开发的应用不起作用。
推荐采用的第一种方法是在build.gradle文件里完成依赖项的相关配置。
采用上述设定后,Debug版本会自动整合网络安全相关的配置文件;若遇到无法访问Maven中央仓库的情况,可参照第二种方法的说明,自行新建并完成网络安全文件的配置工作。
方式二:手动创建网络安全文件
新建文件 res/xml/network_security_config.xml
配置到 AndroidManifest.xml
请在正式发布的版本里把这个配置项移除掉,若想了解更多关于网络安全配置文件的相关信息,可以查阅Android的官方开发文档。
浏览器
在安卓设备上,证书安装完成后,即便已放置到系统证书目录下,浏览器也未必会认可该证书的可信度。
Chrome浏览器
Chrome浏览器的证书信任规则持续调整,像其最新版本就不再认可安装在Android系统证书文件夹里的自行签发CA证书,若要对Chrome浏览器开展抓包操作,可参照以下步骤处理:
如果使用的是高版本Chrome浏览器,需将CA证书安装至用户证书目录。
若使用的是低版本Chrome浏览器,则需把CA证书安装至系统证书目录。
如果不确定选用那种方式,可以分别尝试下。
Firefox浏览器
Firefox浏览器的CA证书验证机制比较特殊,不管Reqable的CA证书安装在系统目录还是用户目录,都无法自动获得信任,得由用户手动进行额外的设置操作才行。
在火狐浏览器中,依次进入设置页面、关于页面,连续点击页面顶部的标志五次,即可开启调试菜单功能。
在Firefox浏览器的设置界面中找到“秘密设置”选项,然后开启“允许使用第三方CA证书”的功能。
完成上述步骤的操作后,把CA证书安装到用户目录就能生效了。
iOS
在苹果移动设备上配置安全证书的步骤十分便捷,遵循以下指引操作就能完成。
首先,需要安装描述文件(证书)。该描述文件既可以手动保存,也能通过浏览器获取。
手动保存操作步骤如下:点击界面右上角的“导出CA证书”选项,随后打开文件应用,在Reqable文档目录中找到刚才导出的CA证书文件。接着,手动将该证书复制或移动到Reqable文档目录的上一级目录,完成移动后点击证书文件,此时会出现已描述文件的提示信息。
在浏览器中操作时,点击相关证书会自动启动浏览器程序,待流程结束后,系统将自动弹出提示,告知描述文件已成功生成。
接下来,进入设置界面,找到描述文件相关选项,选中刚才获取的那个描述文件,然后执行安装操作。
接下来需要完成的是信任证书的操作,具体步骤为:进入设置界面,依次找到通用选项、关于选项、证书信任设置选项,最后开启对应的开关即可。
特殊问题
在某些特殊情形下,即便已经安装了证书,也有可能无法对HTTPS流量进行正常解析,常见的情况主要有以下这些。
网络请求配置了证书固定机制,仅接受由特定机构签发的服务器证书。
网络请求已开启双向验证机制,这意味着客户端也需要向服务器上传证书以完成身份验证流程。
应用采用的是自身的CA证书验证方式,而非调用系统自带的CA证书。
证书问题
若需完成证书相关的部署操作,可通过访问指定链接获取详细指引,该链接为:https://reqable.com/zh-CN/docs/getting-started/installation/
若遇到相关疑问需要排查解决,可访问该链接获取指引:https://reqable.com/zh-CN/docs/faq/ssl/
查看日志
先展开侧边栏,再长按顶部的标识,就能挑选日志文件来浏览了。
获取不到应用程序的流量
请先确保下面的操作已经处理。
已经开启了调试开关。
已经设置记录模式为VPN而不是代理。
已经启用增强模式。
已关闭全部筛选和搜索条件。
已移除全部指定应用程序。
在Reqable里开启调试功能后,用手机浏览器打开百度的主页。
警告
浏览器或许会提示连接不安全,这类情况属于证书问题,请查看以下内容。
Chrome→ https://reqable.com/zh-CN/docs/faq/android/#chrome
Firefox→ https://reqable.com/zh-CN/docs/faq/android/#firefox
当遇到百度主页无法正常打开的情况时,同时在Reqable的调试记录里也完全找不到任何网络流量的踪迹,就连CONNECT类型的请求也没有显示。
或许是代理服务的端口出现了异常情况,比如被其他正在运行的程序占用了,这时候可以试着换一个端口再重新尝试。
若更换端口后浏览器依旧无法访问百度首页,烦请通过Github或微信向我们反馈。
情况二:百度首页能够正常访问,但在Reqable的调试列表里看不到任何流量数据,就连CONNECT请求也没有显示。
请确认记录模式是否处于VPN状态,若该模式下问题依旧存在,可通过Github或微信渠道向我们反馈。
情况三:百度首页能够正常访问,且在Reqable的调试列表里也能看到浏览器的访问流量(其中包含CONNECT请求)。
当前浏览器运行状态正常,推测是目标应用程序本身限制了VPN环境下的使用权限。若需解决此问题,建议直接与该应用程序的开发团队取得联系,以获取针对性的技术支持或解决方案。
无法连接电脑
检查手机和电脑是否在同一个局域网下。
请确认手机与电脑是否处于同一局域网段,部分局域网在组网时可能会限制跨段通信。
尝试电脑连接手机热点,然后手机再扫码连接电脑。
可以查看一下电脑防火墙的设置,确认Reqable代理所使用的端口号对应的网络流量是否被限制了进出。
协同模式下获取不到应用程序的流量
您可以按照下面的步骤进行排查:
切换至独立模式(操作方式为在侧边栏中选择调试Tab),并依照上述第3点开展排查工作。
你可以在手机版Reqable里调整增强模式的开关状态后重新操作试试。
调整电脑上Reqable应用的端口设置后,再通过扫码方式重新建立连接。
Chrome访问提示不安全的网站
Chrome浏览器的证书信任规则持续调整,像其最新版本就不再认可安装在Android系统证书文件夹里的自行签发CA证书,若要对Chrome浏览器开展抓包操作,可参照以下步骤处理:
如果使用的是高版本Chrome浏览器,需将CA证书安装至用户证书目录。
若使用的是低版本Chrome浏览器,则需把CA证书安装至系统证书目录。
如果不确定选用那种方式,可以分别尝试下。
Firefox访问提示不安全的网站
Firefox浏览器自身维护着独立的证书存储机制,系统层面已安装的CA证书无法直接在该浏览器中发挥作用,需通过其的调试功能菜单手动开启对相关证书的信任权限。
在火狐浏览器中,依次进入设置页面、关于页面,连续点击页面顶部的标志五次,即可开启调试菜单功能。
在Firefox浏览器的设置界面中找到“秘密设置”选项,然后开启“允许使用第三方CA证书”的功能。
无法访问境外受限网站
Reqable本身不具备访问受限网站的能力,您可在已取得境外访问许可的前提下,依照以下步骤进行操作。
电脑端安装并启动科学上网工具。
在电脑上通过Reqable软件设置二级代理,使其指向之前配置好的工具。
手机端Reqable扫码连接电脑(协同模式)。
#1 独立模式
Reqable具备独立监听流量的能力,无需依赖桌面端应用程序。用户能够直接在手机上对应用进行抓包,查看HTTP报文并分析网络请求,从而便捷高效地定位问题。Reqable手机端提供了丰富多样的视图,像Json视图、Hex视图、图片预览等,便于开发者查看和分析数据。除此之外,用户还可以对捕获到的请求执行重放、编辑、分析以及保存等操作。
#2 协同模式
要是觉得手机操作不太方便,你可以借助App把流量转发到Reqable桌面端。不需要手动设置Wifi代理,只要扫描二维码,就能将手机上的流量转发到桌面端。而且在协同模式下,还能开启增强抓包功能,这样可以拦截那些不走系统代理的应用程序流量,像Flutter应用程序就属于这类。处于协同模式时,用户能够在电脑端直接对请求进行重放、断点、重写以及脚本等操作。
#3 流量抓包
Rehable默认借助VPN技术捕获应用程序的流量数据,当前具备以下特性:
- HTTP/1.x, HTTP2协议版本。
支持HTTP、HTTPS以及Socks4、Socks4a、Socks5等多种代理协议类型。
采用安全超文本传输协议,并支持TLSv1.1、TLSv1.2与TLSv1.3这三种加密协议。
基于HTTP/1协议升级而来的WebSocket协议。
- IPv4 and IPv6.
- SSL代理。
- HTTP/HTTPS二级代理。
- 筛选、搜索和排序。
- 编辑API。
- 历史记录。
- 重发回放。
- 颜色高亮。
- HAR支持。
- 生成代码。
#4 API测试
Reqable还提供了API测试和管理能力:
- HTTP/1.1、HTTP2与HTTP3(QUIC)请求测试。
- API集合。
- 环境变量。
- 参数批量编辑。
- 授权设置。
- 代理设置。
- 性能数据查看。
- Cookie管理。
- 历史记录。
- cURL支持。
- 生成代码。
v2.33.12版本
- 【优化】部分场景中存在的内存占用过高及卡顿现象。
为防止性能受影响,当原始Tab页中存在超大体积数据时,会以`<...>`的形式呈现这些内容。
已对Python-Requests代码生成逻辑进行调整,现在采用URL拼接方式而非params字典来构建请求地址。
已对API请求测试功能进行优化,现在URL参数值里的等号不会被自动转换成编码形式的%3D了。
对协同二维码关联的IP地址列表进行了调整,移除了其中包含的VPN虚拟地址。
已解决API请求测试中URL参数名与参数值均为空时参数丢失的问题。
- 【修复】修复了切换网络后远程访问设备时出现请求回路的问题。
