iOS-利用Block二次封装AFNetworking 3.0
2016-04-20 16:16
501 查看
现在我们网络请求大都用第三方工具—–AFNetworking;
其中,AFNetworking 3.0 是对 NSURLSession 进行的封装,简化了很多步骤,但是在现实开发中,我们可以将AFNetworking再次封装到一个类中,这样通过传去URL和Parameters 就可以进行网络请求。
具体实现步骤:
前期准备:导入AFNetworking第三方框架
1、新建一个工具类,继承自NSObject;
2、在.h 中宏定义两个block,用来回调请求结果;
3、使用类方法创建两个GET 和 POST请求函数;
4、在.m 中#import “AFNetworking/AFNetworking.h”,并实现.h中定义的两个函数;
2、调用自定义的方法;
其中,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); }];
相关文章推荐
- collectionView的使用iOS
- iOS 二维码扫描 ZBarSDK
- 如何优雅地进行页面间的跳转(iOS)
- mac下cordova的ios-deploy安装问题
- 控制iOS中文字的字间距与行间距
- iOS应用程序内打开指定qq聊天、给某人打电话
- iOS集成环信客服
- iOS 先后执行一组动画源代码
- ios 图文并排功能 NSMutableAttributedString
- iOS中对字符串进行md5加密算法
- iOS-AFN 3.0 前后区别及具体用法
- iOS 万能跳转界面方法 (runtime实用篇一)
- iOS dispatch_semaphore_t
- 【IOS】JsonModel的使用
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
- iOS播放器之基于VLCKit的自定义播放器
- iOS开发--Mac下服务器搭建
- iOS 手机号正则
- iOS热更新-JSPatch实现原理+Patch现场恢复
- 【iOS】XIB 调整视图大小