IOS 使用Block二次封装AFNetworking 3.0详解
2017-02-15 09:03
886 查看
IOS 使用Block二次封装AFNetworking 3.0详解
现在我们网络请求大都用第三方工具—–AFNetworking;
其中,AFNetworking 3.0 是对 NSURLSession 进行的封装,简化了很多步骤,但是在现实开发中,我们可以将AFNetworking再次封装到一个类中,这样通过传去URL和Parameters 就可以进行网络请求。
具体实现步骤:
前期准备:导入AFNetworking第三方框架
1、新建一个工具类,继承自NSObject;
2、在.h 中宏定义两个block,用来回调请求结果;
//宏定义成功block 回调成功后得到的信息 typedef void (^HttpSuccess)(id data); //宏定义失败block 回调失败信息 typedef void (^HttpFailure)(NSError *error);
3、使用类方法创建两个GET 和 POST请求函数;
//get请求 +(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure; //post请求 +(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure;
4、在.m 中#import “AFNetworking/AFNetworking.h”,并实现.h中定义的两个函数;
//GET请求 +(void)getWithUrlString:(NSString *)urlString success:(HttpSuccess)success failure:(HttpFailure)failure{ //创建请求管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFHTTPResponseSerializer serializer]; //内容类型 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil]; //get请求 [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) { //数据请求的进度 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { success(responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { failure(error); }]; } //POST请求 +(void)postWithUrlString:(NSString *)urlString parameters:(NSDictionary *)parameters success:(HttpSuccess)success failure:(HttpFailure)failure{ //创建请求管理者 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // manager.responseSerializer = [AFHTTPResponseSerializer serializer]; //内容类型 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json",@"text/javascript",@"text/html", nil]; //post请求 [manager POST:urlString parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) { //数据请求的进度 } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { success(responseObject); } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { failure(error); }]; }
使用步骤:
1、导入自定义的工具类名;
2、调用自定义的方法;
[XMAFNRequestTools getWithUrlString:url success:^(id data) { self.array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments | NSJSONReadingMutableLeaves error:nil]; NSLog(@"%@",self.array); } failure:^(NSError *error) { NSLog(@"%@",error); }];
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
- iOS中详解Block作为property属性实现页面之间传值
- 一篇文章让你看懂IOS中的block为何再也不需要WeakSelf弱引用
- iOS中block变量捕获原理详析
- iOS MRC 下 block 循环引用问题实例讲解
- 浅谈iOS 对于block的一点理解
- iOS在Block中修改外部变量值的实现代码
- iOS面试中如何优雅回答Block导致循环引用的问题
- iOS通过逆向理解Block的内存模型
- iOS利用Block逆向传值的方式详解
- iOS通过block在两个页面间传值的方法
- iOS中Block的回调使用和解析详解
- iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程
- iOS(闭包)block传值详解
相关文章推荐
- iOS开发 之 AFNetworking3.0使用详解
- iOS---对AFNetworking进行二次封装,使用单例单独处理网络请求数据
- iOS开发第三方框架之AFNetworking3.0的使用
- iOS_21团购_通过block对请求工具类的代理方法进行二次封装
- iOS AFNetworking3.0以上版本 基本使用
- iOS --- AFNetworking3.0网络请求方法封装(自带缓存功能)
- iOS简单封装网络请求,使用block回掉函数方式
- 玩转 IOS 开发 - block 使用详解
- iOS中Block的回调使用和解析详解
- iOS程序猿之AFNetworking 3.0 版本使用
- IOS AFNetWorking 3.0用法步骤详解
- iOS 使用AFNetworking 3.0库进行网络请求时,取消单个队列和全部队列的方法(取消网络请求)
- Ios开发对第三方框架AFNetWorking网络访问的封装使用
- iOS开发 AFNetworking 3.0使用遇到的问题
- iOS-AFNetworking3.0 使用
- iOS开发封装带有Button的UIView控件,使用block给button添加点击事件
- iOS中block的使用详解
- 使用block封装的下载类-iOS开发
- AFNetWorking使用及二次封装的好处
- iOS基于MBProgressHUD的二次封装,一行搞定,使用超简单