AFNetworking 3.0的基本使用

git下载地址:https://github.com/AFNetworking/AFNetworking

get请求

#import <AFNetworking.h>
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];//这句话最好加上
[manager GET:@"请求链接" parameters:@"参数组" progress:^(NSProgress * _Nonnull downloadProgress) {
        //请求进度

}success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        //请求成功
        NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];//把NSData转换成字典类型
        
}failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull   error) {
       //请求失败
}];

post请求

#import <AFNetworking.h>
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

[manager POST:@"请求链接" parameters:@"参数组" progress:^(NSProgress * _Nonnull uploadProgress) {
        //请求进度
} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        //请求成功
        NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
        
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        //请求失败   
}];

文件下载

#import <AFNetworking.h>
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    
//下载任务
NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:@"请求链接" progress:^(NSProgress * _Nonnull downloadProgress) {
        
        //加载进度
        
} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
        //下载存放地址,要返回存放地址(存放地址前面加file://)
        
        return nil;
        
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
        
       // 下载完成之后,解压缩文件
   
}];
[task resume];

文件上传

#import <AFNetworking.h>
 //创建管理者对象
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:@"请求链接" parameters:@"参数组" constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        //上传文件参数,dataArray是一个NSData数组

        if (dataArray.count > 0) {
            for (NSData *imageData in dataArray) {
                [formData appendPartWithFileData:imageData name:dataKey fileName:dataName mimeType:@"image/png"];
            }  
        }
       
} progress:^(NSProgress * _Nonnull uploadProgress) {
       //上传进度

} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        //请求成功(返回的是NSData类型的数据)
        NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];

} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        
        //请求失败
        
}];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,301评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,950评论 25 709
  • 从小我们就向往英雄,希望像漫画中的人物,成为那个被选中的,拯救地球的孩子,但不是所有人都有成为英雄的机会,...
    黑白color阅读 1,683评论 0 0
  • 今早做完实验,发现结果与理论不符,看数据很明确是哪个环节出了问题,虽然不是我的原因,但我有一种负罪感,或许这...
    舒米勒_阅读 3,538评论 2 2
  • TED信息 Roger Ebert: Remaking my voice TED2011 · 19:29 · F...
    林中有男阅读 3,520评论 0 1