由于某些端点由于某些原因,如果服务器返回500,我试图使用Alamofire来实现指数回退重试逻辑。
有什么方法可以使用Alamofire做到这一点吗?请以示例为指导。
谢谢。
答案 0 :(得分:3)
Alamofire 5 beta 2现在包括对基于错误情况的自动重试的支持,并具有可自定义的补偿。看看!
答案 1 :(得分:1)
是的,这很简单,尽管我不相信Alamofire
是本机提供的。但是,由于该库确实允许您发出网络请求,因此如果您因500
错误而失败,则仅使用指数退避重试是相当简单的。具体来说,在您的Alamofire
请求的完成代码块中,检查状态代码,如果状态代码为500
,请在延迟后重试。该延迟应存储在网络管理器级别的某个单例中,并随着发生故障的喜好按指数延迟曲线增加。请求成功后,应将其重置为基本延迟。