swift - 如何在 Alamofire 中的 sessionTask 恢复之前调用自定义方法
问题描述
当 Alamofire 调用 resume 以启动请求时,我需要记录一些数据/信息。(我在项目中使用了 Swift)
反正没有 domethod_swizzling
吗?
时间线将是这样的:
Call a request (put in request queue or execute right away) -> [custom method] -> SessionTask.resume()
我知道 Moya 做过类似的事情,叫做WillSend
. 但我想知道如何在不使用 Moya 的情况下做到这一点。
谢谢你。
解决方案
如果您需要做的只是检查各种请求元素,您可以使用 Alamofire 5 的EventMonitor
协议,该协议在 Alamofire 发出请求时在各种生命周期事件中调用。有一个内置ClosureEventMonitor
允许您为这些事件设置闭包。例如:
let monitor = ClosureEventMonitor()
monitor.requestDidCompleteTaskWithError = { (request, task, error) in
debugPrint(request)
}
let session = Session(eventMonitors: [monitor])
推荐阅读
- windows - 如果一个进程建立了多个 PostgreSQL 连接并在没有关闭它们的情况下终止会发生什么?
- python - AWS Glue 中 s3fs 库的导入失败
- python-3.x - 如何比较熊猫(python 3.x)中两个数据帧中的字符串?
- arduino - 如何从 Esp8266 发布到 MS-teams webhook?
- wpf - 在代码隐藏的 Datagrid 中将单元格设置为 ReadOnly - 单元格具有不同的值
- airflow - Airflow - 无法从工作人员获取日志文件。404 客户端错误:未找到 url
- python - 如何在每个句子上查找和匹配列表的每个元素?
- python - 如何找到用于抓取数据的标签“a”?
- android - TextInput selectionColor属性在android上没有改变颜色
- python - 检查具有特定日期时间的用户的 date_join