我设法使重试与Alamofire一起使用,但是,我想从上一个请求中获取响应数据对象,因此应该在should函数中使用,以便我可以在重试前做出决定。
我不确定在Alamofire中是否可行,这是我的代码:
func should(_ manager: SessionManager, retry request: Request, with error: Error, completion: @escaping RequestRetryCompletion) {
if let response = request.task?.response as? HTTPURLResponse, response.statusCode == 460 {
let data = // response from previous request's data object of type Data
let delayTime = 2.0
completion(request.retryCount < 3, delayTime)
} else {
completion(false, 0.0)
}
}
我试图通过任务获取数据对象,但我总是得到nil:
let data = request.task?.originalRequest?.httpBody
是否应该在应有的功能中获取DataResponse
对象
或者有一种方法可以手动调用Alamofire检索器