美文网首页iOS DeveloperiOS 开发
AFNetworking 3.0的基本使用

AFNetworking 3.0的基本使用

作者: 博尔茨杰 | 来源:发表于2016-08-23 10:04 被阅读240次

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) {
        
        //请求失败
        
}];

相关文章

网友评论

    本文标题:AFNetworking 3.0的基本使用

    本文链接:https://www.haomeiwen.com/subject/ltvbsttx.html