我有很多Alamofire请求/响应代码处理的地方。有没有办法做Alamofire请求重试
由于某些间歇性问题(最常见的是片状网络),每个请求可能会失败。
我希望能够在救援之前重试请求3次。
直截了当的方法是有类似的东西
var errorCount = 0
func requestType1() {
let request = Alamofire.request(...).responseJSON { response in
if (isError(response) && errorCount < 3) {
errorCount += 1
request1()
}
if (isError(response)) {
handleError()
}
handleSuccess()
}
}
不过,我不喜欢这种方法的多种原因很多。最明显的是,我需要为每个请求类型实现这样的代码(我有类似的15个)。
我珍玩是否有办法做到像(其中的变化是最小的,非侵入式)
let request = Alamofire.request(..., **3**)
你可以做一个包装,接受请求一结束块?那么,不是直接调用请求,而是在块中有相同的请求代码,但调用封装器?更易于更改代码。 – Carlos
卡洛斯。我想你是对的。我忽略了这个:)。你想写作答案? –
当然,给我一点时间,我会这样做 – Carlos