在 Netfox 和 Moya 中记录 HTTPBody

Posted

技术标签:

【中文标题】在 Netfox 和 Moya 中记录 HTTPBody【英文标题】:Logging HTTPBody in Netfox and Moya 【发布时间】:2017-10-31 14:16:23 【问题描述】:

我目前在我的 ios 项目中使用 Moya。我尝试使用 Netfox 记录我的 HTTP 请求。

由于 Moya 是 Alamofire 的封装,我最终在URLSessionConfigurationprotocolClasses 中使用NFXProtocol 创建了自定义Alamofire.SessionManager。我成功收到了请求和响应的响应日志和标头,但总是错过请求正文。

我偶然发现了this fix on Netfox from 2015,但我不知道如何将它与 Moya 一起使用。有谁知道如何实现它?

提前致谢!

【问题讨论】:

你在 Moya 中检查过这个问题吗? github.com/Moya/Moya/issues @aldok 我做了,这个问题还没有列出来。 【参考方案1】:

只需使用 Moya 的网络日志插件,它已经是 Moya 的一部分,只需连接它。您可以在实例化 Moya 提供程序时传递插件数组:

let plugins = [NetworkLoggerPlugin()]
let provider = MoyaProvider<MyNetworkApiService>(manager: manager, plugins: plugins)

要为开发启用日志记录并为发布构建禁用日志记录,您可以执行以下操作:

    var plugins: [PluginType] = []
    #if DEBUG
    plugins.append(NetworkLoggerPlugin())
    #endif
    let provider = MoyaProvider<MyNetworkApiService>(manager: manager, plugins: plugins)

【讨论】:

以上是关于在 Netfox 和 Moya 中记录 HTTPBody的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Moya 框架中禁用 Moya_Logger

swift 框架moya post请求遇到的坑

理解 Realm、Moya 和 ObjectMapper

Moya 在存根和正常请求之间切换

Moya使用

如何在 Moya 中传递 URLRequest