AFNetworking在iOS网络请求第三方库中占据着半壁江山,前段时间将AFNetworking进行了3.0版本的迁移,运用面向对象的设计将代码进行封装整合,这篇文章主要为还在寻找AFNetworking集成代码或者准备3.0迁移的各位童鞋们提供思路,同时自定义了字典模型转换 ...
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 *)strUrl13 headers:(NSDictionary *)headers14 params:(NSDictionary *)params15 class:(Class)class16 block:(CompletionLoad)block17 blockError:(void (^)(JsonCommonResultBase *))blockError18 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*)strUrl32 headers:(NSDictionary*)headers33 params:(NSDictionary*)params34 class:(Class)class35 block:(CompletionLoad)block36 blockError:(void(^)(JsonCommonResultBase *))blockError37 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*)strUrl51 headers:(NSDictionary*)headers52 params:(NSDictionary*)params53 class:(Class)class54 block:(CompletionLoad)block55 blockError:(void(^)(id))blockError56 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*)strUrl70 headers:(NSDictionary*)headers71 params:(NSDictionary*)params72 class:(Class)class73 block:(CompletionLoad)block74 blockError:(void(^)(JsonCommonResultBase *))blockError75 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 *)strUrl91 headers:(NSDictionary *)headers92 params:(NSDictionary *)params93 dataFiles:(NSArray *)dataFiles94 progressBlock:(LoadProgress)progressBlock95 block:(CompletionLoad)block96 class:(Class)class97 blockError:(void (^)(JsonCommonResultBase *))blockError98 blockTimeOut:(TimeOutCompletion)blockTimeOut;
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)
关键词:网络
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。