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 = 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 

你可能感兴趣的:(iOS)