Skip to content

网络 Network

网络面板是 eruda-plus 相对原版 eruda 变化最大的部分,几乎按 Chrome DevTools 的信息架构重写了一遍。它覆盖了请求从发出到结束的全生命周期:捕获、过滤、检查、编辑(屏蔽/重写/Mock)、限速与导出。本页按能力模块逐一说明。

请求列表与详情

面板以表格呈现所有捕获的请求,包含名称、方法、状态、类型、大小、时间与瀑布图七列。瀑布图按时间轴对齐绘制,每段请求以颜色区分排队、等待与下载阶段。点击任意行进入详情视图,详情包含:

  • Headers:常规信息(URL、方法、状态码)、请求头与响应头完整清单。
  • Response / Preview:响应原文与格式化预览,JSON 自动树状展开。
  • Initiator:发起该请求的调用栈位置,帮助你定位「这个请求是谁发的」。
  • Timing:排队、DNS、连接、等待、下载等时序分段。

顶部工具条支持按状态筛选(全部 / 文档 / XHR / JS / CSS / 图片 / 失败),并提供关键词过滤与正则过滤。{ } 按钮可以把选中请求复制为 fetch 代码,cURL 按钮生成 curl 命令,直接粘贴到终端重放。

屏蔽请求

点击工具条的规则按钮打开「屏蔽 / 重写 / Mock」面板,第一个标签页就是屏蔽(Blocked)。填写匹配模式(每行一条,支持关键词与 /正则/ 两种写法),勾选启用后,所有命中模式的请求都会被拦截:

  • 请求以 403 状态出现在列表中,状态列显示 blocked 徽标。
  • fetch 调用会收到 Blocked by eruda 的合成响应;XHR 的行为与服务器断开一致。
  • 屏蔽规则保存在 localStorage,刷新页面后依然生效。

典型用途:临时屏蔽某个报错的第三方脚本、验证广告拦截器的影响、阻断埋点上报以净化网络日志。

URL 重写

重写(Rewrite)标签页可以建立 模式 → 替换 的映射,请求发出前 URL 会被逐条替换。重写发生在所有规则链的最前端,也就是说重写后的 URL 才会进入屏蔽与 Mock 的匹配流程。常用场景包括:

  • https://api.example.com 重写为 http://localhost:3000,让真机直接请求本地服务。
  • 把测试域名重写到生产域名(或反过来)对比行为差异。
  • 为同一接口维护多个环境切换规则,随取随用。

响应 Mock

Mock 标签页可以为命中的请求合成完整响应:状态码、Content-Type 与响应体都可自定义。Mock 命中的请求在列表中以 200 * 这样的带星状态码标记,与真实请求区分。面板中每条规则支持启用开关与多行 JSON 响应体。

配合首页「测试」下拉栏可以立即体验:添加一条 500 + {"code":500} 的 Mock 规则后请求 /mock-demo,即可在控制台与网络面板同时观察到一次「服务端错误」的完整链路。Mock 与重写规则同样持久化保存,适合长时间挂机调试。

网络节流

工具条右侧的节流下拉提供 DevTools 同款档位:

档位延迟带宽
无节流0不限
Slow 3G400ms50 KB/s
Fast 3G150ms180 KB/s
Offline完全断网

节流对 XHR 与 fetch 同时生效:请求先按档位延迟排队,再按带宽计算下载耗时。Offline 档位下请求直接以网络错误失败,可以验证页面的离线降级逻辑。也可以在代码中编程切换:eruda.get('network').throttle('slow3g')

HAR 导入导出

  • 导出:工具条下载按钮把当前请求日志打包为标准 HAR 文件,可直接拖进桌面 DevTools 的 Network 面板查看。
  • 导入:从抓包工具(ProxyPin、Charles 等)或 DevTools 导出的 HAR 也可以导入回放,历史请求会按原始时序出现在列表中,支持完整的详情检查。

快捷语言切换

工具条右下角的「中/EN」按钮可以在不离开网络面板的情况下切换整站语言,表头、时序段、状态徽标会即时翻译。这只是一个快捷入口,与设置面板中的语言选项等效。

基于 MIT License 许可发布