本文介绍了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 判断请求超时
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍python 判断网络连通的实现方法,包括了python 判断网络连通的实现方法的使用技巧和注意事项,需要的朋友参考一下 开发中偶尔需要判断网络的连通性,没有什么方法比 ping 更直接了当,通常检查网络情况都是运行命令ping www.baidu.com ,查看输出信息即可。 简单方法 python执行批处理用多种方法,考虑到我们仅仅用于验证网络连通性,只需要最终的结果,os.sy
本文向大家介绍PHP判断是否连接上网络的方法,包括了PHP判断是否连接上网络的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP判断是否连接上网络的方法。分享给大家供大家参考。具体实现方法如下: 首先写个函数 接着在需要的地方直接调用即可 希望本文所述对大家的php程序设计有所帮助。
本文向大家介绍Android中判断网络连接状态的方法,包括了Android中判断网络连接状态的方法的使用技巧和注意事项,需要的朋友参考一下 App判断用户是否联网是很普遍的需求,实现思路大概有下面几种 利用Android自带的ConnectivityManager类 有时候连上了wifi,但这个wifi是上不了网的,我们可以通过ping www.baidu.com来判断是否可以上网 也可以利用ge
Mpx提供了网络请求库fetch,抹平了微信,阿里等平台请求参数及响应数据的差异;同时支持请求拦截器,请求取消等 使用说明 import mpx from '@mpxjs/core' import mpxFetch from '@mpxjs/fetch' mpx.use(mpxFetch) // 第一种访问形式 mpx.xfetch.fetch({ url: 'http://xxx.com' }
本文向大家介绍iOS中设置网络超时时间+模拟的方法详解,包括了iOS中设置网络超时时间+模拟的方法详解的使用技巧和注意事项,需要的朋友参考一下 设置方法如下: 在封装的网络请求类里面如下设置 AFWEBAPI_REQUEST_TIMEOUT 这个参数为超时时间 在封装的方法里面,在失败的回调里面写下如下代码,至于怎么处置就看自己了,我这里具体需求没有给,我先做了一个弹框处理 如何去调试呢,难道去电
本文向大家介绍Angular网络请求的封装方法,包括了Angular网络请求的封装方法的使用技巧和注意事项,需要的朋友参考一下 很多时候,我很喜欢angular的编码风格,特别是angular支持typescript之后,完整的生命周期,完美的钩子函数,都是别的语言所无法替代的。 这里我来说说我自己的网络请求封装,某种意义上来说,angular自己的网络请求封装的很好的,我们没有必要再来画蛇添足,