AFNetworking识别失败原因:用户取消请求或网络故障

时间:2014-03-27 07:54:21

标签: ios http networking request afnetworking

我正在使用AFNetworking发出网络请求。请求失败块failure:^(AFHTTPRequestOperation *operation, NSError *error)在两种情况下被调用,

  1. 当请求因网络连接问题而失败时。
  2. 当我取消正在进行的请求时。
  3. 在故障区块代码中,我无法区分上述两个原因。我需要区分只在请求因网络问题而失败时才提供自定义通知。

    如何正确识别请求失败的原因?

1 个答案:

答案 0 :(得分:1)

我认为error.code的值在方案1中等于NSURLErrorNotConnectedToInternet(-1009),在方案2中等于NSURLErrorCancelled( - 999)。

以下是一个例子:

failure:^(AFHTTPRequestOperation *operation, NSError* error) {                  
    if(error.code == NSURLErrorNotConnectedToInternet) {
        // handle scenario 1
    } else if(error.code == NSURLErrorCancelled) {
        // handle scenario 2
    } else {
        // handle unexpected errors
    }         
}