Adilnasceng/requestlab
GitHub: Adilnasceng/requestlab
一款Chrome DevTools扩展,用于实时拦截、修改、重放HTTP请求并支持模拟响应、速率限制绕过和API逆向工程。
Stars: 2 | Forks: 0
# RequestLab



## ⚠️ 免责声明
## 功能特性
| 功能 | 描述 |
|---|---|
| **请求拦截器** | 通过 `chrome.debugger` 实时捕获所有 XHR + Fetch 请求 |
| **请求/响应编辑器** | 在发送或接收前修改请求头、正文、URL 参数 |
| **规则引擎** | 持久化规则:模拟响应、注入/移除请求头、状态码覆盖 |
| **速率限制绕过** | 移除 `X-RateLimit-*` 请求头、轮换 User-Agent、添加请求延迟 |
| **重放** | 重新发送任何已捕获的请求并应用修改 |
| **导出** | 复制为 `curl`、`fetch()` 或 `Python requests` 代码片段 |
| **API 逆向工程** | 自动提取 Bearer 令牌、API 密钥、URL 参数 |
| **WebSocket 监控** | 记录发送/接收的帧,带时间戳和 JSON 格式化显示 |
## 截图

*实时请求日志,显示方法、状态码、大小和时间*

*响应正文检查器,带 JSON 语法高亮*

*规则引擎 — 模拟响应、请求头注入、状态码覆盖*

*重放请求并编辑,导出为 cURL / fetch / Python*
## 安装
**无需构建步骤 — 直接作为未打包扩展加载。**
1. 克隆仓库:
git clone https://github.com/Adilnasceng/requestlab.git
2. 打开 Chrome 并访问:
chrome://extensions
3. 启用**开发者模式**(右上角开关)。
4. 点击**加载已解压的扩展程序**并选择 `requestlab/` 文件夹。
5. 扩展程序已安装完成。
## 使用方法
1. 打开您想要检查的任意网站。
2. 按 `F12` 打开 Chrome 开发者工具。
3. 在开发者工具面板中点击 **RequestLab** 选项卡。
### 拦截请求
一旦打开面板,页面发出的所有 HTTP 请求都会自动记录。点击任意行可检查请求头、正文和响应。
```
GET 200 /api/user/profile JSON 1.2KB 43ms
POST 201 /api/comments JSON 0.4KB 120ms
GET 429 /api/feed JSON — 12ms ← rate limited
```
### 创建模拟规则
1. 点击工具栏中的 **⚙ 规则**。
2. 点击 **+ 添加规则**。
3. 设置:
- **类型:** `模拟响应`
- **URL 模式:** 例如 `api/user`
- **响应正文:** 您的自定义 JSON
4. 点击 **保存规则**。
所有匹配的请求现在将返回您的模拟响应,而不会访问服务器。
### 重放请求
1. 在日志中点击一个请求。
2. 打开右侧的 **重放** 选项卡。
3. 编辑方法、URL、请求头或正文。
4. 点击 **▶ 发送请求**。
### 导出为代码
在任意选中的请求上打开 **导出** 选项卡并选择:
- `cURL` — 可直接粘贴到终端
- `fetch()` — JavaScript 代码片段
- `Python` — `requests` 库代码片段
### 速率限制绕过
点击 **⚡ RL 绕过** 并启用:
- 从发出的请求中移除 `X-RateLimit-*` 和 `Retry-After` 请求头
- 每次请求轮换 User-Agent 字符串
- 在请求之间添加可配置的延迟(毫秒)
所有 429 响应会被单独记录,并显示 `Retry-After` 值。
## 文件结构
```
requestlab/
├── manifest.json # MV3 manifest
├── background/
│ └── service_worker.js # Debugger lifecycle, interception, rules engine
├── devtools/
│ ├── devtools.html # DevTools entry page
│ ├── devtools.js # Panel registration
│ ├── panel.html # Main UI
│ ├── panel.js # UI logic, virtual scroll, export
│ └── panel.css # Dark theme styles
├── popup/
│ ├── popup.html # Toolbar popup
│ ├── popup.js # Quick stats
│ └── popup.css
├── lib/
│ └── codemirror/ # Bundled CodeMirror 5.65.16 (offline)
└── icons/
└── icon.svg
```
## 权限说明
| 权限 | 原因 |
|---|---|
| `debugger` | 附加到标签页以通过 Chrome 开发者工具协议拦截请求 |
| `webRequest` | 监控网络活动 |
| `declarativeNetRequest` | 应用持久化的请求头注入/阻止规则 |
| `storage` | 保存规则和设置 |
| `tabs` | 识别被检查的标签页 |
| `host_permissions:
` | 拦截任意网站的请求 |
## 技术栈
- **Manifest V3** — 基于 service worker,无持久化的后台页面
- **Vanilla JavaScript** — 无框架依赖
- **Chrome 开发者工具协议** — 使用 `Fetch` 域进行拦截,使用 `Network` 域进行 WebSocket 监控
- **declarativeNetRequest** — 用于持久化的请求头规则
- **CodeMirror 5** — 本地打包用于 JSON 编辑
## 许可证
本项目基于 [MIT 许可证](LICENSE) 授权。
## 作者
**Adil NAS** — [GitHub](https://github.com/Adilnasceng) · [邮箱](mailto:adilnasceng@gmail.com)
[](https://github.com/sponsors/Adilnasceng)
标签:API测试, API调试, DevTools, Fetch, Header修改, HTTP拦截, Manifest V3, Mock响应, TCP/UDP协议, WebSocket监控, XHR, 云资产清单, 代码生成, 响应编辑, 威胁情报, 开发者工具, 浏览器插件, 渗透测试工具, 网络安全, 网络调试, 自动化, 自定义脚本, 请求修改, 请求重放, 逆向工程, 速率限制绕过, 隐私保护