首页 > 系统 > iOS > 正文

iOS判断网络请求超时的方法

2019-10-21 18:50:10
字体:
来源:转载
供稿:网友

 本文介绍了iOS判断网络请求超时的方法,代码具体如下:

 + (AFHTTPRequestOperation *)requestOperationWithUrl:(NSString *)url                    requetMethod:(NSString *)method                     paramData:(NSDictionary *)aParamData             constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block                      success:(successBlock)success                      failure:(failureBlock)failure {AFHTTPRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer];  NSMutableURLRequest *request;  if (block) {    method = @"POST";    request = [requestSerializer multipartFormRequestWithMethod:method URLString:url parameters:aParamData constructingBodyWithBlock:block error:nil];  }else{    request = [requestSerializer requestWithMethod:method URLString:url parameters:aParamData error:nil];  } AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];  AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializer];  responseSerializer.removesKeysWithNullValues = YES;  responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];  op.responseSerializer = responseSerializer; __weak AFHTTPRequestOperation *weakOp = op;  [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {    if ([responseObject[@"code"] integerValue] == 0) {      if (success) {//        success(weakOp, aParamData, responseObject[@"list"]);        success(weakOp, aParamData, responseObject);      }    }else{      NSLog(@"operation error msg = [%@]", responseObject[@"description"]);      if (failure) {        failure(weakOp, aParamData, [self errorWithRet:responseObject]);      }    }  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {    NSLog(@"operation failed = [%@] error = [%@]", operation, error);    if (failure) {      failure(weakOp, aParamData, error);    }      }];    return op;}

打印 error

Error Domain=NSURLErrorDomain Code=-1001 "请求超时。"UserInfo={NSErrorFailingURLStringKey=http://123.56.109.92/refitcar/service.s?sn=, _kCFStreamErrorCodeKey=-2102, NSErrorFailingURLKey=http://123.56.109.92/refitcar/service.s?sn=, NSLocalizedDescription=请求超时。, _kCFStreamErrorDomainKey=4, NSUnderlyingError=0x167da8e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "请求超时。" UserInfo={_kCFStreamErrorCodeKey=-2102, NSErrorFailingURLStringKey=http://123.56.109.92/refitcar/service.s?sn=, NSErrorFailingURLKey=http://123.56.109.92/refitcar/service.s?sn=, NSLocalizedDescription=请求超时。, _kCFStreamErrorDomainKey=4}}}

可见:

po error.localizedDescription  请求超时。

po error.code  -1001

po error.userInfo{  NSErrorFailingURLKey = "http://123.56.109.92/refitcar/service.s?sn=";  NSErrorFailingURLStringKey = "http://123.56.109.92/refitcar/service.s?sn=";  NSLocalizedDescription = "/U8bf7/U6c42/U8d85/U65f6/U3002";  NSUnderlyingError = "Error Domain=kCFErrorDomainCFNetwork Code=-1001 /"/U8bf7/U6c42/U8d85/U65f6/U3002/" UserInfo={_kCFStreamErrorCodeKey=-2102, NSErrorFailingURLStringKey=http://123.56.109.92/refitcar/service.s?sn=, NSErrorFailingURLKey=http://123.56.109.92/refitcar/service.s?sn=, NSLocalizedDescription=/U8bf7/U6c42/U8d85/U65f6/U3002, _kCFStreamErrorDomainKey=4}";  "_kCFStreamErrorCodeKey" = "-2102";  "_kCFStreamErrorDomainKey" = 4;}

所以使用 error.code是否等于   -1001  判断请求超时

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到IOS开发频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表