【问题标题】:Alamofire: how to handle and classify errors?Alamofire:如何处理和分类错误?
【发布时间】:2016-01-15 16:35:16
【问题描述】:

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”、“未找到服务器”等错误,以便为用户提供信息性借口,说明他们的内容无法加载的原因?

【问题讨论】:

  • 是的,我如何确定发生了什么故障?真可怕!

标签: swift alamofire


【解决方案1】:

你可以像这样获取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)")
            }
    }

【讨论】:

  • 是否有.Failure 案例的文档?它是否包括网络关闭/服务器无法访问错误?
  • .Success 是在请求​​成功的情况下,.Failure 表示无法执行请求! http状态来自服务器的响应
  • 是的,我如何确定发生了什么故障?真可怕!
猜你喜欢
  • 2015-04-28
  • 2015-05-15
  • 2015-08-04
  • 2018-02-18
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
  • 2017-06-01
相关资源
最近更新 更多