AFNetworking在iOS网络请求第三方库中占据着半壁江山,前段时间将AFNetworking进行了3.0版本的迁移,运用面向对象的设计将代码进行封装整合,这篇文章主要为还在寻找AFNetworking集成代码或者准备3.0迁移的各位童鞋们提供思路,同时自定义了字典模型转换方法,需要的朋友也可以作为参考,还望各位老司机批评指正!先上代码框架图:
1、DB数据访问层,在AFNetworkingManager中我将AFNetworking的GET/POST/DELETE/PUT方法封装,提供了以下接口:
1 /** 2 * get方式请求数据 3 * 4 * @param strUrl api地址 5 * @param headers 头部信息 6 * @param params 可变参数信息 7 * @param class 返回数据模型类 8 * @param block block结果回调 9 * @param blockError block错误回调 10 * @param blockTimeOut block超时回调 11 */ 12 -(void)getDataFromUrl:(NSString *)strUrl 13 headers:(NSDictionary *)headers 14 params:(NSDictionary *)params 15 class:(Class)class 16 block:(CompletionLoad)block 17 blockError:(void (^)(JsonCommonResultBase *))blockError 18 blockTimeOut:(TimeOutCompletion)blockTimeOut; 19 20 /** 21 * post方式更新数据 22 * 23 * @param strUrl api地址 24 * @param headers 头部信息 25 * @param params 可变参数信息 26 * @param class 返回数据模型类 27 * @param block block结果回调 28 * @param blockError block错误回调 29 * @param blockTimeOut block超时回调 30 */ 31 - (void)postDataFromUrl:(NSString*)strUrl 32 headers:(NSDictionary*)headers 33 params:(NSDictionary*)params 34 class:(Class)class 35 block:(CompletionLoad)block 36 blockError:(void(^)(JsonCommonResultBase *))blockError 37 blockTimeOut:(TimeOutCompletion)blockTimeOut; 38 39 /** 40 * put方式更新数据 41 * 42 * @param strUrl api地址 43 * @param headers 头部信息 44 * @param params 可变参数信息 45 * @param class 返回数据模型类 46 * @param block block结果回调 47 * @param blockError block错误回调 48 * @param blockTimeOut block超时回调 49 */ 50 - (void)putDataFromUrl:(NSString*)strUrl 51 headers:(NSDictionary*)headers 52 params:(NSDictionary*)params 53 class:(Class)class 54 block:(CompletionLoad)block 55 blockError:(void(^)(id))blockError 56 blockTimeOut:(TimeOutCompletion)blockTimeOut; 57 58 /** 59 * delete方式删除数据 60 * 61 * @param strUrl api地址 62 * @param headers 头部信息 63 * @param params 可变参数信息 64 * @param class 返回数据模型类 65 * @param block block结果回调 66 * @param blockError block错误回调 67 * @param blockTimeOut block超时回调 68 */ 69 - (void)deleteDataFromUrl:(NSString*)strUrl 70 headers:(NSDictionary*)headers 71 params:(NSDictionary*)params 72 class:(Class)class 73 block:(CompletionLoad)block 74 blockError:(void(^)(JsonCommonResultBase *))blockError 75 blockTimeOut:(TimeOutCompletion)blockTimeOut; 76 77 /** 78 * post方式更新数据(上传文件如图片) 79 * 80 * @param strUrl api地址 81 * @param headers 头部信息 82 * @param params 可变参数信息 83 * @param dataFiles 文件数据 84 * @param class 返回数据模型类 85 * @param block block结果回调 86 * @param progressBlock block进度回调 87 * @param blockError block错误回调 88 * @param blockTimeOut block超时回调 89 */ 90 - (void)uploadDataFromUrl:(NSString *)strUrl 91 headers:(NSDictionary *)headers 92 params:(NSDictionary *)params 93 dataFiles:(NSArray *)dataFiles 94 progressBlock:(LoadProgress)progressBlock 95 block:(CompletionLoad)block 96 class:(Class)class 97 blockError:(void (^)(JsonCommonResultBase *))blockError 98 blockTimeOut:(TimeOutCompletion)blockTimeOut;