当前位置: 移动技术网 > 移动技术>移动开发>IOS > iOS判断网络请求超时的方法

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

2019年07月24日  | 移动技术网移动技术  | 我要评论

 本文介绍了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  判断请求超时

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网