iOS使用AFN设置请求超时时间并做处理

来源:互联网 发布:简单的单片机设计作品 编辑:程序博客网 时间:2024/06/06 03:08

AFN设置请求超时时间

第一种:

//设置超时时间    [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];    manager.requestSerializer.timeoutInterval = 30.f;    [manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];

第二种:

NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];config.timeoutIntervalForRequest = 15.0;AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:config];

既然有请求超时的设置,自然也有请求超时的错误,其错误码对应如下:-1001


这时在错误中截取错误码并进行如下处理:

[manager POST:url parameters:data progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {//        NSLog(@"url====%@\n返回数据%@",url,responseObject);        if (result) {            result(responseObject);        }    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {        NSLog(@"error ==%@",error);        //请求超时        if (error.code  == -1001) {            //1、获取当前viewController            UIViewController *viewController = [[CommFun singleton] getCurrentVC];            //2、隐藏加载框            [MBProgressHUD hideHUDForView:viewController.view animated:YES];            //3、弹出提示:请求超时            SHOWALERT(@"请求超时,请刷新后再试!", viewController);        }    }];

苹果相应的错误码如下:

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}