标签:
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的循环引用
标签:
原文地址:http://www.cnblogs.com/bao-yu/p/5423696.html