AFNetworking 图片上传至服务器

现在 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,以达到过渡的目的,并且解释了新增和更改的设计结构。
之前也有很多图片上传的demo,但如果随着AFNetworking的升级也将被弃用,这里附上一新版本的AFNetworking的图片上传方法,其实改动的地方微乎其微,原里还是一样的。
- (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_Nonnull formData) {// 获取图片数据 NSData *fileData = https://www.it610.com/article/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) {}]; }



下载:AFNetworking图片上传Demo
【AFNetworking 图片上传至服务器】

    推荐阅读