-1

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

反正没有 domethod_swizzling吗?

时间线将是这样的:

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

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

谢谢你。

4

1 回答 1

0

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

let monitor = ClosureEventMonitor()
monitor.requestDidCompleteTaskWithError = { (request, task, error) in
    debugPrint(request)
}
let session = Session(eventMonitors: [monitor])

请参阅我们的文档ClosureEventMonitorEventMonitor协议本身

于 2020-07-06T15:12:06.137 回答