现在 AFNetworking 的版本是3.0,和以前的2.0版本发生了比较大的改变,为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持
弃用的类
下面的类已从AFNetworking 3.0中废弃:
- AFURLConnectionOperation
- AFHTTPRequestOperation
- AFHTTPRequestOperationManager
修改的类
下面的类包含基于NSURLConnection的API的内部实现。他们已经被使用NSURLSession重构:
- UIImageView+AFNetworking
- UIWebView+AFNetworking
- UIButton+AFNetworking
迁移
AFHTTPRequestOperationManager 核心代码
如果你以前使用 AFHTTPRequestOperationManager , 你将需要迁移去使用AFHTTPSessionManager。 以下的类在两者过渡间并没有变化:
- securityPolicy
- requestSerializer
- responseSerializer
AFNetworking迁移指南,本指南是为了引导使用AFNetworking 2.x升级到最新的版本API,以达到过渡的目的,并且解释了新增和更改的设计结构。
- (IBAction)iconViewBtnOnClick:(UIButton *)sender
{
// 获得网络管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 设置请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"key"] = AppKey;
params[@"codeType"] = @"5004";
[manager POST:URL parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
// 获取图片数据
NSData *fileData = UIImageJPEGRepresentation([JYDataManager sharedManager].img, 1.0);
// 设置上传图片的名字
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyyMMddHHmmss";
NSString *str = [formatter stringFromDate:[NSDate date]];
NSString *fileName = [NSString stringWithFormat:@"%@.png", str];
[formData appendPartWithFileData:fileData name:@"image" fileName:fileName mimeType:@"image/png"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// 返回结果
NSLog(@"%@", responseObject[@"result"]);
self.label.text = responseObject[@"result"];
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
}];
}