AFNetWorking 取消網絡請求&網絡超時

取消網絡請求

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSURLSessionDataTask *task = [manager GET:@"url地址"parameters:@"入參"progress:^(NSProgress *_Nonnull downloadProgress) {

//數據請求進度

} success:^(NSURLSessionDataTask *_Nonnull task,id _Nullable responseObject) {

//請求成功


} failure:^(NSURLSessionDataTask *_Nullable task,NSError *_Nonnull error) {

//請求失敗

}];

//取消單個網絡請求
[task cancel];

//取消所有的網絡請求
[manager.operationQueue cancelAllOperations];

網絡超時

  [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
    manager.requestSerializer.timeoutInterval = 10.f;
    [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

timeoutInterval 是AFNetworking本身自帶的一個設置超時的鍵。

設置完之后問題又來了,如果我想在超時之后做一些操作,怎么判斷什么時候請求超時?我想起來了每次AFN請求失敗我都有打印error,于是我就去看看打印信息,如下圖:

1641067-4000dcc20247a205.png

錯誤碼

蘋果提供相關錯誤碼如下:

 enum
    {
       NSURLErrorUnknown = -1,
       NSURLErrorCancelled = -999,
       NSURLErrorBadURL = -1000,
       NSURLErrorTimedOut = -1001,
       NSURLErrorUnsupportedURL = -1002,
       NSURLErrorCannotFindHost = -1003,
       NSURLErrorCannotConnectToHost = -1004,
       NSURLErrorDataLengthExceedsMaximum = -1103,
       NSURLErrorNetworkConnectionLost = -1005,
       NSURLErrorDNSLookupFailed = -1006,
       NSURLErrorHTTPTooManyRedirects = -1007,
       NSURLErrorResourceUnavailable = -1008,
       NSURLErrorNotConnectedToInternet = -1009,
       NSURLErrorRedirectToNonExistentLocation = -1010,
       NSURLErrorBadServerResponse = -1011,
       NSURLErrorUserCancelledAuthentication = -1012,
       NSURLErrorUserAuthenticationRequired = -1013,
       NSURLErrorZeroByteResource = -1014,
       NSURLErrorCannotDecodeRawData = -1015,
       NSURLErrorCannotDecodeContentData = -1016,
       NSURLErrorCannotParseResponse = -1017,
       NSURLErrorInternationalRoamingOff = -1018,
       NSURLErrorCallIsActive = -1019,
       NSURLErrorDataNotAllowed = -1020,
       NSURLErrorRequestBodyStreamExhausted = -1021,
       NSURLErrorFileDoesNotExist = -1100,
       NSURLErrorFileIsDirectory = -1101,
       NSURLErrorNoPermissionsToReadFile = -1102,
       NSURLErrorSecureConnectionFailed = -1200,
       NSURLErrorServerCertificateHasBadDate = -1201,
       NSURLErrorServerCertificateUntrusted = -1202,
       NSURLErrorServerCertificateHasUnknownRoot = -1203,
       NSURLErrorServerCertificateNotYetValid = -1204,
       NSURLErrorClientCertificateRejected = -1205,
       NSURLErrorClientCertificateRequired = -1206,
       NSURLErrorCannotLoadFromNetwork = -2000,
       NSURLErrorCannotCreateFile = -3000,
       NSURLErrorCannotOpenFile = -3001,
       NSURLErrorCannotCloseFile = -3002,
       NSURLErrorCannotWriteToFile = -3003,
       NSURLErrorCannotRemoveFile = -3004,
       NSURLErrorCannotMoveFile = -3005,
       NSURLErrorDownloadDecodingFailedMidStream = -3006,
       NSURLErrorDownloadDecodingFailedToComplete = -3007
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • error code(錯誤代碼)=0是操作成功完成。error code(錯誤代碼)=1是功能錯誤。error c...
    Heikki_閱讀 3,452評論 1 9
  • error code(錯誤代碼)=2000是無效的像素格式。error code(錯誤代碼)=2001是指定的驅動...
    Heikki_閱讀 1,853評論 0 4
  • iOS開發系列--網絡開發 概覽 大部分應用程序都或多或少會牽扯到網絡開發,例如說新浪微博、微信等,這些應用本身可...
    lichengjin閱讀 3,721評論 2 7
  • AFNetworking 設置超時時間及如何判斷超時 最近項目在優化,在連接超時之后要給用戶友好提示,這就要設置超...
    小球why閱讀 34,864評論 9 50
  • AFN什么是AFN全稱是AFNetworking,是對NSURLConnection、NSURLSession的一...
    醉葉惜秋閱讀 1,245評論 0 0