AFNetworking3.0的使用 与2.0的区别
2016-06-18 00:00
375 查看
摘要: 区别:1.废弃了基于 NSURLConnection 的所有API,升级到基于 NSURLSession
2.AFNetworking 3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7
3.被废弃的类:AFURLConnectionOperation,AFHTTPRequestOperation,AFHTTPRequestOperationManager
4.被修改的类:UIImageView+AFNetworking,UIWebView+AFNetworking,UI...
1、
- (void)viewDidLoad {
[super viewDidLoad];
// AFNetworking 3.0 与AFNetworking2.0的区别
/**
1.废弃了基于 NSURLConnection 的所有API,升级到基于 NSURLSession
2.AFNetworking 3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7
3.被废弃的类::::::AFURLConnectionOperation,AFHTTPRequestOperation,AFHTTPRequestOperationManager
4.被修改的类:::::UIImageView+AFNetworking,UIWebView+AFNetworking,UIButton+AFNetworking
5.如果你以前使用 AFHTTPRequestOperationManager , 你将需要迁移去使用 AFHTTPSessionManager
6.UIAlertView的类目被废
*/
// 初始化管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer.timeoutInterval = 30;
// 上传普通的格式
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
// 收到数据的格式(data) 注意 :不加这句会报错Request failed: unacceptable content-type: text/plain”错误,因为我们要获取text/plain类型数据
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
POST请求;
// [self Post:manager];
GET请求
// [self Get:manager];
网络监测
// [self Reachability];
}
#pragma mark - POST
- (void)Post:(AFHTTPSessionManager *)manager{
// 请求参数
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"20131129", @"date", @"1", @"startRecord", @"5", @"len", @"1234567890", @"udid", @"Iphone", @"terminalType", @"213", @"cid", nil];
[manager POST:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?" parameters:dic constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
// 拼接data到请求体,
} progress:^(NSProgress * _Nonnull uploadProgress) {
// 获取目前数据的进度
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dic);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error.localizedDescription);
}];
}
#pragma mark - GET
- (void)Get:(AFHTTPSessionManager *)manager{
[manager GET:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
NSLog(@"%@", dic);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error.localizedDescription);
}];
}
#pragma mark - 网络监测
- (void)Reachability{
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知网络");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"无网络");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WiFi");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"流量上网");
break;
default:
break;
}
}];
// 开始监听 (一定不要忘了)
[manager startMonitoring];
}
#pragma mark - 上传、下载功能 就不在更了
2.AFNetworking 3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7
3.被废弃的类:AFURLConnectionOperation,AFHTTPRequestOperation,AFHTTPRequestOperationManager
4.被修改的类:UIImageView+AFNetworking,UIWebView+AFNetworking,UI...
1、
- (void)viewDidLoad {
[super viewDidLoad];
// AFNetworking 3.0 与AFNetworking2.0的区别
/**
1.废弃了基于 NSURLConnection 的所有API,升级到基于 NSURLSession
2.AFNetworking 3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7
3.被废弃的类::::::AFURLConnectionOperation,AFHTTPRequestOperation,AFHTTPRequestOperationManager
4.被修改的类:::::UIImageView+AFNetworking,UIWebView+AFNetworking,UIButton+AFNetworking
5.如果你以前使用 AFHTTPRequestOperationManager , 你将需要迁移去使用 AFHTTPSessionManager
6.UIAlertView的类目被废
*/
// 初始化管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer.timeoutInterval = 30;
// 上传普通的格式
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
// 收到数据的格式(data) 注意 :不加这句会报错Request failed: unacceptable content-type: text/plain”错误,因为我们要获取text/plain类型数据
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
POST请求;
// [self Post:manager];
GET请求
// [self Get:manager];
网络监测
// [self Reachability];
}
#pragma mark - POST
- (void)Post:(AFHTTPSessionManager *)manager{
// 请求参数
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"20131129", @"date", @"1", @"startRecord", @"5", @"len", @"1234567890", @"udid", @"Iphone", @"terminalType", @"213", @"cid", nil];
[manager POST:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?" parameters:dic constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
// 拼接data到请求体,
} progress:^(NSProgress * _Nonnull uploadProgress) {
// 获取目前数据的进度
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",dic);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error.localizedDescription);
}];
}
#pragma mark - GET
- (void)Get:(AFHTTPSessionManager *)manager{
[manager GET:@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves error:nil];
NSLog(@"%@", dic);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error.localizedDescription);
}];
}
#pragma mark - 网络监测
- (void)Reachability{
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusUnknown:
NSLog(@"未知网络");
break;
case AFNetworkReachabilityStatusNotReachable:
NSLog(@"无网络");
break;
case AFNetworkReachabilityStatusReachableViaWiFi:
NSLog(@"WiFi");
break;
case AFNetworkReachabilityStatusReachableViaWWAN:
NSLog(@"流量上网");
break;
default:
break;
}
}];
// 开始监听 (一定不要忘了)
[manager startMonitoring];
}
#pragma mark - 上传、下载功能 就不在更了
相关文章推荐
- 360安全卫士 3.0 正式版下载
- Windows 8 中的 PowerShell 3.0
- Packer 3.0 JS压缩及混淆工具 下载
- 个人录制经常用到的Adobe Audition 3.0 完美者特别优化版
- asp.net(c#)Enterprise Library 3.0 下载
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- THINKPHP2.0到3.0有哪些改进之处
- 游戏人文件夹程序 ver 3.0
- afnetworking 和 asihttprequest 强制修改http连接的host地址
- iOS 最新版的 CocoaPods 安装流程
- ehcache3.0尝鲜
- AFNetworking+Nginx+HTTPS自签名服务器安全通信
- iOS应用网络安全之HTTPS
- linux内核从2.6到3.0.0
- WSUS 3.0 完整部署
- Web 3.0是否会引发新一轮革命?
- WSUS 3.0 SP2 部署
- mongodb 3.0 使用mongodump、mongorestore数据迁移
- 学习cocos2d-x 3.0自己写的游戏2048