新增独立的一卡通消费上传 HTTP 原文日志,只记录 UploadBusinessRec。连接检测、用户总数、人员、部门和黑名单等其他一卡通 SOAP 请求不记录原文。
每次消费流水上传结束后生成一条完整交换记录,包含:
Content-Length、Content-Type、SOAPAction、Accept、Host、User-Agent。日志保存到设备外部存储的统一 Log 目录,文件名格式为:
一卡通消费上传请求响应_yyyyMMdd.txt
UploadBusinessRec 将小型响应读取到内存;其他一卡通接口继续使用原有 SAX 流式解析。LocalFileRecorder 的后台线程,不在网络线程执行磁盘写入。OnecardWebServiceClient:仅在 UploadBusinessRec 分支采集完整请求、响应和异常信息。OnecardUploadHttpExchange:保存并格式化一笔完整 HTTP 交换。OnecardUploadHttpRecorder:定义交换记录边界,允许测试使用内存记录器。OnecardUploadHttpFileRecorder:将一笔交换一次性交给异步独立文件记录器。OnecardWebServiceClientTest:通过本地 HTTP 服务验证只记录消费上传,并校验完整请求体、响应体、请求头、响应头和状态码。OnecardUploadHttpExchange 记录能力而编译失败。GetCustomerCount,再执行 UploadBusinessRec,最终只得到一条完整交换记录,测试通过。JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash ./gradlew --no-daemon :app:testDebugUnitTest --tests 'com.zhct.traybinding.onecard.server.*' :app:assembleDebug:成功。:app:testDebugUnitTest 共运行 206 项,3 项现有客户分页测试失败;生产常量为每页 2000,旧测试仍按 1000 断言,相关文件无本次修改。当前未连接 Android 设备,因此尚未在设备 Log 目录实际读取新文件。自动化已验证记录范围和内容;安装新 APK 并产生一笔一卡通消费上传后,可导出当天文件与 Charles 抓包对照。
本次未执行暂存、提交、推送、拉取、分支切换或其他 Git 写操作,也未修改提示词仓库中的其他未提交内容。