Files
ReelShort/docs/plans/2026-10-22-debug-http-logging.md
T

1.2 KiB

Android Studio 调试 HTTP 日志

目标

  • 仅在调试构建中输出 Dio 请求、响应与异常日志。
  • Android Studio Run 控制台通过 debugPrint 展示,logcat 标签保持 flutter。
  • Authorization 脱敏,X-Device-Id 保留,二进制响应只显示字节数。
  • 单条请求体或响应体最多 3000 字符。

实现步骤

  1. 新增 NetworkLogInterceptor,支持注入日志回调并保留请求耗时。
  2. 在 Envelope 解包前暂存原始 bytes;日志拦截器追加到拦截链末尾后读取暂存值。
  3. 在 ApiClient 注册调试拦截器,kDebugMode 与常量开关同时满足时才输出。
  4. 以 fake adapter 补单测,覆盖行格式、脱敏、UTF-8、截断、非 JSON 与二进制。
  5. 运行 dart analyze lib test 和 flutter test,更新 PROGRESS 留痕。

风险与约束

  • ResponseType.bytes 不能直接 toString,响应体统一 utf8.decode。
  • Dio 响应拦截器按 FIFO 执行;链尾日志通过 Envelope 暂存的原始 bytes 读取, 避免拿到已解包后的 data。
  • release/profile 通过 kDebugMode 短路,不输出任何 HTTP 日志。
  • 不新增依赖,不提交现有 pubspec.lock 改动,不启停服务、不操作真机。