如何在 Alamofire 中的 sessionTask 恢复之前调用自定义方法

Posted

技术标签:

【中文标题】如何在 Alamofire 中的 sessionTask 恢复之前调用自定义方法【英文标题】:How to call custom method right before sessionTask resume in Alamofire 【发布时间】:2020-07-03 03:45:14 【问题描述】:

当 Alamofire 调用 resume 以启动请求时,我需要记录一些数据/信息。 (我在项目中使用了 Swift)

还有没有domethod_swizzling

时间线会是这样的:

Call a request (put in request queue or execute right away) -> [custom method] -> SessionTask.resume()

我知道 Moya 做过类似的事情,叫做WillSend。但我想知道如何在不使用 Moya 的情况下做到这一点。

谢谢。

【问题讨论】:

那时你打算做什么? @JonShier 我想获取请求开始时间的信息或它发送的请求的参数或与即将执行的请求相关的任何信息。你有什么建议吗? 【参考方案1】:

如果您只需要检查各种请求元素,您可以使用 Alamofire 5 的 EventMonitor 协议,该协议在 Alamofire 发出请求时在各种生命周期事件中调用。有一个内置的 ClosureEventMonitor 允许您为这些事件设置闭包。例如:

let monitor = ClosureEventMonitor()
monitor.requestDidCompleteTaskWithError =  (request, task, error) in
    debugPrint(request)

let session = Session(eventMonitors: [monitor])

请参阅our documentation for ClosureEventMonitorEventMonitor protocol itself。

【讨论】:

以上是关于如何在 Alamofire 中的 sessionTask 恢复之前调用自定义方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中的 Alamofire 中发送 body 参数?

您如何访问 Alamofire 5 didCompleteTaskNotification 通知中的响应数据?

Alamofire - 如何获取表中的记录数

如何在 Alamofire 中使用 NetworkReachabilityManager

如何使用 AlamoFire/ObjectMapper 访问嵌入在 JSON 字典中的链接?

如何使用 Alamofire/ObjectMapper 返回嵌入在字典中的 JSON 字符串?