IOS框架学习之AFN

  1. 首先利用 CocoaPods 把框架AFN导入到项目中。
  2. 然后在ViewController里面导入<AFNetworking.h>, http请求记得配置 APP Transport。
  3. 然后就可以具体实现了:
#pragma mark - get请求
-(void)get
{
    // 创建会话管理者
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    
    // 写参数
    NSDictionary *paramDict=@{
                              @"username":@"520it",
                              @"pwd":@"520it",
                              @"type":@"JSON"
                              };
    // 发送get请求
    [manager GET:@"http://120.25.226.186:32812/login" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"%@-%@",[responseObject class],responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"请求失败--%@",error);
    }];
}

#pragma mark - post请求
-(void)post
{
    // 创建会话管理者
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    
    // 写参数
    NSDictionary *paramDict=@{
                              @"username":@"520it",
                              @"pwd":@"520it",
                              @"type":@"JSON"
                              };
    // 发送post请求
    [manager POST:@"http://120.25.226.186:32812/login" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"%@-%@",[responseObject class],responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"请求失败--%@",error);
    }];
}

#pragma mark -  文件下载
- (void)download
{
    // 创建会话管理者
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    NSURL *url=[NSURL URLWithString:@"http://120.25.226.186:32812/resources/images/minion_01.png"];
    
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    
    
    // 下载文件
    NSURLSessionDownloadTask *download=[manager downloadTaskWithRequest: request
        progress:^(NSProgress * _Nonnull downloadProgress) {
            // 监听下载进度
            NSLog(@"%f",1.0*downloadProgress.completedUnitCount/downloadProgress.totalUnitCount);
            
        } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
            
        NSString *fullPath=[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:response.suggestedFilename];
        NSLog(@"targetPath:%@",targetPath);
        NSLog(@"fullPath:%@",fullPath);
            
            return [NSURL fileURLWithPath:fullPath];
        } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
            NSLog(@"%@",filePath);
        }];
    
    [download resume];
}
#pragma mark - 文件上传
- (void)upload
{
    // 1. 创建会话管理者
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    
    // 2. 发送POST请求上传文件
    /**
     第一个参数:请求路径
     第二个参数:字典(非文件参数)
     第三个参数:constructingBodyWithBlock 处理要上传的文件数据
     第四个参数:进度回调
     第五个参数:成功回调 responseObject:响应体信息
     第六个参数:失败回调
     */
    [manager POST:@"http://120.25.226.186:32812/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
        
        UIImage *image=[UIImage imageNamed:@"aaa"];
        NSData *imageData=UIImagePNGRepresentation(image);
        //使用formData来拼接数据
        /*
         第一个参数:二进制数据 要上传的文件参数
         第二个参数:服务器规定的
         第三个参数:该文件上传到服务器以什么名称保存
         */
        [formData appendPartWithFileURL:[NSURL fileURLWithPath:@"/Users/xzq/Desktop/aaa.png"] name:@"file" error:nil];
        
    } progress:^(NSProgress * _Nonnull uploadProgress) {
        NSLog(@"%f",1.0 * uploadProgress.completedUnitCount/uploadProgress.totalUnitCount);
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"上传成功--%@",responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"上传失败--%@",error);
    }];

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ♥ 04 缘分是啥? “你饿了吗?”他问。 饿了,饿了。走吧,吃饭去。不能蹭咖啡,蹭饭也不错。 我点虾,他点鸡汤。...
    魔镜老师阅读 427评论 4 1
  • 我们仨 端午节期间,无意中翻阅了杨绛先生的著作《我们仨》,情真意切,的确很感人。突然想写我们仨的故事,卓姑娘(我老...
    从彦阅读 282评论 2 0
  • (等) 寂静人等待,相约人未到。 无处安停下,寻得士多店。 一支小可乐,两脚可休闲。 学会慢等待,心静如止水。
    甘朝武阅读 83评论 0 0
  • 清晨,李开阳跑到郊区就停了下来,结束了晨跑“七月十五号了。”李开阳喃喃道,经过一个月的锻炼,他的身体素质明显有了提...
    死小鱼阅读 198评论 0 0