您的位置:首页 > 理论基础 > 计算机网络

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 - 上传、下载功能 就不在更了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息