我正在尝试使用Alamofire实现指数退避重试逻辑,以防服务器返回500由于某些原因导致我的终点。
有没有办法让我能用Alamofire实现这个目标?请以示例为指导。
提前致谢。
Alamofire 5 beta 2现在支持基于错误条件的自动重试以及可自定义的退避。看一看!
是的,这很简单,虽然我不相信Alamofire
本身提供它。但是,由于库确实允许您发出网络请求,因此如果您因500
错误而失败,则只需使用指数退避重试即可。具体来说,在Alamofire
请求的完成块中,您检查状态代码,如果是500
,请在延迟后重试。该延迟应存储在网络管理器级别的某些单例中,并随着故障发生时沿着您喜欢的指数延迟曲线增加。然后,当您的请求成功时,应将其重置为基本延迟。