AFN
2016-04-23 07:53
295 查看
1. AFHTTPRequestOperationManager: 封装的是 NSUrlConnection ; 3.0之后已经被舍弃.
iOS 9.0 之前使用最多的一个类. 类似于 AFHTTPSessionManager (封装的是 NSUrlSession),专门用来发送网络请求的!
AFNetworkReachabilityManager :用来实时监测当前网络状态的!
AFSecurityPolicy :安全策略:支持 HTTPS 请求.
AFN 主要用来发送网络请求. 特点: 会自动/默认解析 JSON 数据!
2.AFN 成功回调的要求 1.网络请求成功 2.服务器返回的必须是JSON数据 3.AFN能够解析JSON数据
http://blog.sina.com.cn/s/blog_68661bd80101r1xz.html
解析器的类型
3. AFN 会默认解析 JSON 数据.
AFN 中默认有三种类型的解析器.
1> AFHTTPResponseSerializer :万能的解析器.什么数据都可以解析.会将服务器返回的二进制数据直接返回给你.
2> AFJSONResponseSerializer :解析 JSON 数据,默认就是这种解析器.
3> AFXMLParserResponseSerializer :XML 解析器.
改变解析器类型
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
增加解析器解析文件类型
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript" ,@"text/plain",nil];
4. AFN 使用注意:
要根据服务器返回的数据类型,选择合适的解析器类型!
5.利用 AFN 监测网络状态!
AFNetworkReachabilityManager 只要网络状态改变,都可以监测到!
下面是提供的实例:
1. 实例化网络工具监测类.
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
2. 设置网络状态改变之后的操作.
ReachabilityStatusChangeBlock:一旦网络状态改变之后,就会执行下面的 block.
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知的网络...");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"没有网络...");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"蜂窝移动网络...");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI网络...");
break;
default:
break;
}
}];
// 开启网络监测.
[manager startMonitoring];
block的循环引用
iOS 9.0 之前使用最多的一个类. 类似于 AFHTTPSessionManager (封装的是 NSUrlSession),专门用来发送网络请求的!
AFNetworkReachabilityManager :用来实时监测当前网络状态的!
AFSecurityPolicy :安全策略:支持 HTTPS 请求.
AFN 主要用来发送网络请求. 特点: 会自动/默认解析 JSON 数据!
2.AFN 成功回调的要求 1.网络请求成功 2.服务器返回的必须是JSON数据 3.AFN能够解析JSON数据
http://blog.sina.com.cn/s/blog_68661bd80101r1xz.html
解析器的类型
3. AFN 会默认解析 JSON 数据.
AFN 中默认有三种类型的解析器.
1> AFHTTPResponseSerializer :万能的解析器.什么数据都可以解析.会将服务器返回的二进制数据直接返回给你.
2> AFJSONResponseSerializer :解析 JSON 数据,默认就是这种解析器.
3> AFXMLParserResponseSerializer :XML 解析器.
改变解析器类型
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
增加解析器解析文件类型
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript" ,@"text/plain",nil];
4. AFN 使用注意:
要根据服务器返回的数据类型,选择合适的解析器类型!
5.利用 AFN 监测网络状态!
AFNetworkReachabilityManager 只要网络状态改变,都可以监测到!
下面是提供的实例:
1. 实例化网络工具监测类.
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
2. 设置网络状态改变之后的操作.
ReachabilityStatusChangeBlock:一旦网络状态改变之后,就会执行下面的 block.
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知的网络...");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"没有网络...");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"蜂窝移动网络...");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WIFI网络...");
break;
default:
break;
}
}];
// 开启网络监测.
[manager startMonitoring];
block的循环引用
相关文章推荐
- Delphi连接Oracle控件ODAC的安装及使用
- MarkDown语法
- andorid service 本地服务
- <读书笔记>软件调试之道 :实证方法
- 团队项目个人工作总结(4.23)
- jekyll博客文章生成器制作
- 第一次冲刺会议个人博客05
- 第一次冲刺会议05
- WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例
- 第一次冲刺阶段第五天
- 【WC 2002】奶牛浴场
- 站立会议05
- url-pattern的3种写法
- 网络直播被严查,机器如何帮助鉴别小黄图?
- 易學原論(4288_2)
- 新媒体运营,不懂这三点不叫干货
- 深夜课堂:JavaScript简介
- C51 禁止使用绝对寄存器寻址方式访问函数选定
- Linux编程(文件描述符)
- 病来如山倒