# 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` 改动,不启停服务、不操作真机。