swift - 在 Alamofire 请求中使用 validate() 时如何处理错误?

标签 swift alamofire

我想处理状态代码 100...402 和 404...599。 403 由 AuthInterceptor 处理。

我已经尝试删除 validate() 并由我自己处理它,但是如果请求中没有 validate() ,则不会调用拦截器。

request = AF.request(encodedURLRequest, interceptor: AuthInterceptor()).validate().responseData { (response) in
    ...
}

我需要在“...” block 中处理这些状态代码 最好的方法是在验证方法中指定序列 100.599,而不指定 403。如果有可能的话。

最佳答案

为了重试您的请求,您必须在 Alamofire 请求管道中的某个时刻产生错误。 validate() 自动为您执行此操作,让请求在调用响应序列化程序之前重试。您可以自定义 validate() 以仅关心您想要的状态代码,也可以创建自定义响应序列化程序并在其中抛出错误。您可以使用自己的一组状态代码自定义验证:

var allowedStatusCodes = Set(200..<500)
allowedStatusCodes.remove(403)

AF.request(...).validate(statusCode: allowedStatusCodes).response { ... }

关于swift - 在 Alamofire 请求中使用 validate() 时如何处理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58164462/

相关文章:

swift - 为什么过滤裁剪图像比过滤调整大小的图像慢 4 倍(两者具有相同的尺寸)

ios - 过渡到子 UINavigationController 时奇怪的导航栏动画

json - 如何制作 Swift JSON 请求参数

ios - 将 CURL 转换为 Swift 以在 Alamofire 中使用

objective-c - 自定义 NSURLProtocol 以显示/隐藏 NetworkActivityIndi​​cator

ios - 如何在 swift 中发送带有嵌套字典的 POST 请求

ios - NSJSONSerialization 使用有效的 json 返回 nil

json - 快速读取在线 JSON 文件

ios - UICollectionView ImageView 问题

swift - 使用 Alamofire 创建一个标准的 API Router