【问题标题】:How to check Alamofire failure of bad internet connection?如何检查互联网连接不良的 Alamofire 故障?
【发布时间】:2019-05-12 15:58:46
【问题描述】:

我如何检查我的 Alamofire 请求是否由于互联网连接不良而失败?我收到一个错误,但我怎么知道它因此而失败了

Error Domain=NSURLErrorDomain Code=-1005 "网络连接丢失。" UserInfo={_kCFStreamErrorCodeKey=-4, NSUnderlyingError=0x6000007fe6a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1005 "(null)" UserInfo={NSErrorPeerAddressKey={length = 28, capacity = 28, bytes = 0x1c1e1f96000000000000000000000000 ... 0000000100000000}, _kCFStreamErrorCodeKey= -4, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask ., _NSURLErrorRelatedURLSessionTaskErrorKey=( “本地上传任务。” )

【问题讨论】:

标签: ios swift error-handling alamofire response


【解决方案1】:

你可以像这样从失败案例中得到错误信息

Alamofire.request("YourURL", method: .post, parameters: parameters)
    .responseJSON { response in
    if case .failure(let error) = response.result {
        print(error.localizedDescription)//The network connection was lost.
    } else if case .success = response.result {
        print(response.result.value)
    }
}

【讨论】:

    【解决方案2】:

    您可以通过AFError中的underlyingError属性查看失败原因,如下所示

    Alamofire.request("url", method: .post, parameters: parameters)
    .responseJSON { response in
      if let afError = response.error,
      let underlyingError = afError.underlyingError as? URLError {
        switch underlyingError.code {
        case URLError.notConnectedToInternet:
            // do your thing here
        default:
            // any other URLError code handling
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-02
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2013-02-02
      • 1970-01-01
      相关资源
      最近更新 更多