您的位置:首页 > 其它

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的循环引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: