以下是一份基于Reqable的详细实例教程,涵盖代理调试、请求测试、脚本自动化等核心功能,结合实战案例与代码示例,帮助开发者快速掌握这一现代化API工具的使用技巧。
一、Reqable 简介与安装
Reqable 是一款支持 HTTP/HTTPS/WebSocket/gRPC 的多协议调试工具,集成代理抓包、API 测试、脚本自动化等功能,适用于开发、测试、爬虫等场景。
安装步骤:
访问官网下载对应平台的安装包(支持 Windows/macOS)。
双击安装包,默认路径安装即可。
首次启动需安装根证书(菜单栏证书 安装根证书),确保 HTTPS 流量可解密。
二、代理调试实战:抓取移动端 App 请求
目标:捕获 Android 模拟器中 App 的 HTTP 请求。
步骤:
1、配置代理:
在 Reqable 中查看本机 IP 和端口(顶部操作栏显示,如192.168.1.100:8866)。
在夜神模拟器中,进入WLAN 设置 修改网络 手动代理,填写上述 IP 和端口。
2、安装证书:
在 Reqable 中点击证书 Android,复制证书下载地址。
在模拟器浏览器中打开该地址,下载并安装证书(命名如reqable)。
3、启动抓包:
在 Reqable 中点击启动按钮,开启代理监听。
在模拟器中运行目标 App,所有网络请求将显示在调试列表中。
示例:抓取某电商 App 搜索接口数据,筛选productName和price字段(代码参考网页1案例)。
三、API 请求测试与自动化
1. 基础请求构建
目标:发送 GET/POST 请求并验证响应。
步骤:
在 Reqable 中点击新建请求,选择 HTTP 方法(如 GET)。
输入 URL(如https://api.example.com/users)。
3.添加请求头(如Content-Type: application/json)和查询参数。
4.点击发送,查看响应状态码、头部和格式化内容(支持 JSON/XML 高亮)。
示例 POST 请求:
POST https://api.example.com/loginHeaders: Content-Type: application/jsonBody: {"username": "test", "password": "123456"}
2. 脚本自动化:自动添加 Token
目标:登录后自动提取 Token 并附加到后续请求头。
步骤:
登录脚本(捕获登录响应并存储 Token):
from reqable import *
def onResponse(context, response): if response.url.endswith('/login'): token = response.body.json().get('result', {}).get('token') context.env['token'] = token # 存储到环境变量 return response
请求脚本(自动附加 Token):
def onRequest(context, request): if 'token' in context.env: request.headers['Authorization'] = f'Bearer {context.env["token"]}' return request
四、进阶功能:请求重写与 Mock 数据
1. 修改响应内容
目标:将某 API 响应替换为本地数据。
脚本示例:
def onResponse(context, response): if response.url == 'https://api.example.com/data': response.body = '{"status": "mocked", "data": "Hello Reqable!"}' response.headers['Content-Type'] = 'application/json' return response
启动脚本后,访问目标 API 将返回自定义数据。
2. 动态签名计算
目标:为请求参数生成 MD5 签名并添加到头部3。
脚本示例:
import hashlib
def onRequest(context, request): params = sorted(request.queries.items()) query_str = '&'.join([f'{k}={v}' for k, v in params]) signature = hashlib.md5(query_str.encode()).hexdigest() request.headers['X-Signature'] = signature return request
五、实战案例:电商数据抓取
场景:抓取某电商平台商品列表(需绕过反爬机制)。
步骤:
配置代理:通过 Reqable 代理手机或模拟器流量1。
脚本处理加密参数:若请求参数被加密,使用 Reqable 脚本动态计算签名(参考网页1中的加密处理说明)1。
数据解析与存储:
import csvimport requests
response = requests.get('https://api.ecommerce.com/products', headers=headers)data = response.json()['data']for item in data: with open('products.csv', 'a') as f: writer = csv.writer(f) writer.writerow([item['name'], item['price']])
六、常见问题与解决
其他详情见官方文档:https://reqable.com/docs
领取专属 10元无门槛券
私享最新 技术干货