我是靠谱客的博主 隐形大地,这篇文章主要介绍IOS 使用Block二次封装AFNetworking 3.0详解,现在分享给大家,希望可以做个参考。

IOS 使用Block二次封装AFNetworking 3.0详解

现在我们网络请求大都用第三方工具—–AFNetworking;

其中,AFNetworking 3.0 是对 NSURLSession 进行的封装,简化了很多步骤,但是在现实开发中,我们可以将AFNetworking再次封装到一个类中,这样通过传去URL和Parameters 就可以进行网络请求。

具体实现步骤:

前期准备:导入AFNetworking第三方框架

1、新建一个工具类,继承自NSObject;

2、在.h 中宏定义两个block,用来回调请求结果;

复制代码
1
2
3
4
//宏定义成功block 回调成功后得到的信息 typedef void (^HttpSuccess)(id data); //宏定义失败block 回调失败信息 typedef void (^HttpFailure)(NSError *error);

3、使用类方法创建两个GET 和 POST请求函数;

复制代码
1
2
3
4
5
6
//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中定义的两个函数;

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//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、调用自定义的方法;

复制代码
1
2
3
4
5
6
[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二次封装AFNetworking 3.0详解的全部内容,更多相关IOS内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(127)

评论列表共有 0 条评论

立即
投稿
返回
顶部