一个零构建的 Chrome DevTools 扩展,用于在 DevTools 内直接格式化 HTTP 请求、响应以及 WebSocket 消息数据。
- 在 Chrome DevTools 中新增
Request Formatter面板 - 自动捕获当前页面已完成的
Network请求 - 展示请求方法、URL、状态码、资源类型和耗时
- 格式化
URL Params、Request Headers、Request Body、Response Headers、Response Body - 自动美化
JSON与application/x-www-form-urlencoded数据 - 支持将 HTTP 请求展示为可复用的
cURL命令 - 支持查看
WebSocket握手信息、连接状态、消息列表与消息详情 - 自动格式化
WebSocket文本帧中的JSON消息 - 支持在右侧详情区搜索当前请求或连接内容,并高亮匹配结果
- 自动跟随 DevTools 独立主题切换,并在不支持时降级跟随系统主题
- 支持过滤请求、暂停捕获、清空列表、复制格式化结果
devtools-request-formatter/
├── .github/workflows/release.yml
├── _locales/
├── assets/
├── scripts/
│ ├── check.sh
│ └── package.sh
├── src/
│ ├── copyable-detail.js
│ ├── curl.js
│ ├── detail-search.js
│ ├── formatters.js
│ ├── i18n.js
│ ├── panel.css
│ ├── panel.js
│ ├── panel-websocket.js
│ └── theme.js
├── devtools.html
├── devtools.js
├── manifest.json
├── panel.html
├── LICENSE
├── README.md
└── README.EN.md
项目保持零构建结构,扩展入口文件位于仓库根目录,面板运行时 JS/CSS 位于 src/。
- 打开 Chrome,进入
chrome://extensions/ - 开启右上角开发者模式
- 点击加载已解压的扩展程序
- 选择当前项目目录
- 打开任意页面的 DevTools,即可看到新的
Request Formatter面板
- 保持
DevTools打开 - 切换到
Request Formatter面板 - 刷新页面或触发接口请求
- 在左侧列表选择请求,在右侧查看格式化后的详情
- 需要采集 WebSocket 帧时,启用
WebSocket开关 - 在详情区按
Ctrl+F/Cmd+F可打开搜索框,使用Enter或方向按钮切换匹配结果
bash scripts/check.sh脚本会检查 src/ 下所有 JavaScript 文件,以及根目录的 devtools.js。
clipboardWrite:用于复制格式化后的内容到剪贴板debugger:用于接入 Chrome DevTools Protocol,采集 WebSocket 握手信息和消息帧
注意:
- 只有在你打开 DevTools 并使用该面板时,扩展才能访问当前调试会话中可见的请求数据
- 启用
WebSocket捕获时,Chrome 可能显示浏览器级的“正在调试此标签页”提示 - 是否能读取完整响应体,仍然受 Chrome DevTools API 本身能力限制
bash scripts/package.sh脚本会读取 manifest.json 中的 version,并在 release 目录生成:
release/devtools-request-formatter-v<version>.zip
- 更新
manifest.json中的version - 提交代码并打
tag,例如v0.1.0 - 推送
tag到GitHub GitHub Actions会自动生成zip并附加到Release
- Chrome 只会暴露 DevTools 打开期间捕获到的请求
- WebSocket 消息捕获依赖
chrome.debugger权限,启用后 Chrome 可能显示浏览器级调试提示 - 当前 WebSocket 实现主要格式化文本帧和 JSON 帧;二进制帧仅展示大小和基础元数据
- 每个 WebSocket 连接最多保留最近
500条消息,以控制面板内存和渲染成本 - 二进制 HTTP 响应会以
base64提示展示,不会进一步解析为图片或压缩包预览 - 部分跨进程、缓存或浏览器内部请求可能无法读取
response body,这是 Chrome DevTools API 的能力限制
