Moya 14.0.0的NetworkLoggerPlugin仅显示响应头不展示响应体如何解决
Moya 14.0.0 NetworkLoggerPlugin 不打印响应体解决方案
问题原因
Moya 14.0.0 版本的NetworkLoggerPlugin默认初始化使用的默认配置项中,logOptions没有包含响应体打印的开关,你之前使用正常大概率是此前用的Moya版本默认配置包含该参数,或者之前的自定义配置被后续代码改动覆盖。
修复方案
显式自定义插件的配置,主动开启响应体打印选项,修改插件初始化代码如下:
// 自定义日志插件配置,显式指定需要打印的内容项 let loggerConfig = NetworkLoggerPlugin.Configuration( logOptions: [ .requestMethod, // 打印请求方法 .requestHeaders, // 打印请求头 .requestBody, // 打印请求体 .responseStatus, // 打印响应状态码 .responseHeaders, // 打印响应头 .responseBody // 核心配置:开启响应体打印 ] ) let loggerPlugin = NetworkLoggerPlugin(configuration: loggerConfig) // 初始化Provider时传入自定义配置的插件 let someProvider = MoyaProvider<TransferWebServicesAPI>(plugins: [loggerPlugin])
异常排查
如果修改后还是无法打印响应体,按以下顺序排查:
- 确认当前接口返回的响应体不为空:HTTP 204等空响应状态码场景下,插件本身就不会打印响应体
- 暂时移除项目中其他自定义Moya插件,验证是否是其他插件提前拦截处理了响应数据,导致日志插件读取不到完整响应体
- 检查
Podfile.lock中Moya的版本确实为14.0.0,避免依赖版本意外变动导致的配置不兼容
内容的提问来源于stack exchange,提问作者behrad
相关产品推荐
相关产品推荐

