Alamofire:如何处理和分类错误?

4

Alamofire的一个示例如下:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
     .validate()
     .responseJSON { response in
         switch response.result {
         case .Success:
             print("Validation Successful")
         case .Failure(let error):
             print(error)
         }
     }

如何处理类似于“网络中断”、“404”、“服务器未找到”等错误,以向用户提供有意义的信息,告知他们为什么无法加载内容?

1个回答

3
您可以按照以下方式获取HTTP状态码并处理它:
Alamofire.request(.GET, USERS_URL, headers: headers, encoding: .JSON)
        .responseJSON { response in
            debugPrint(response)
            switch response.result {
            case .Success(let data):
                if response.response!.statusCode == 200 {
                  //do things
                }else if response.response!.statusCode == 401 {
                    //do things
                }
            case .Failure(let error):
                print("Request failed with error: \(error)")
            }
    }

1
是否有关于 .Failure 情况的文档?它是否包括网络故障/服务器不可达错误? - William Entriken
成功表示请求成功,而失败则意味着无法完成请求!HTTP状态码来自服务器响应。 - aline
1
你可以查看Alamofire文档获取更多信息。 https://alamofire.github.io/Alamofire/Enums/AFError.html这里有另一篇可能有帮助的文章。 https://gist.github.com/perlguy99/f7f336b66ccb27fcc148b7d5bdbc9a3f - TeeJaay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接