你的位置:首页 > 软件开发 > 操作系统 > 一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)

一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)

发布时间:2017-06-21 12:01:15
AFNetworking在iOS网络请求第三方库中占据着半壁江山,前段时间将AFNetworking进行了3.0版本的迁移,运用面向对象的设计将代码进行封装整合,这篇文章主要为还在寻找AFNetworking集成代码或者准备3.0迁移的各位童鞋们提供思路,同时自定义了字典模型转换 ...

一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)

      AFNetworking在iOS网络请求第三方库中占据着半壁江山,前段时间将AFNetworking进行了3.0版本的迁移,运用面向对象的设计将代码进行封装整合,这篇文章主要为还在寻找AFNetworking集成代码或者准备3.0迁移的各位童鞋们提供思路,同时自定义了字典模型转换方法,需要的朋友也可以作为参考,还望各位老司机批评指正!先上代码框架图:

一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)

1、DB数据访问层,在AFNetworkingManager中我将AFNetworking的GET/POST/DELETE/PUT方法封装,提供了以下接口:

一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)一劳永逸的解决AFNetworking3.0网络请求问题(面向对象封装大法,block回调)
 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 (#换成@)。