AFNetworking的基本使用

AFNetworking 

本Demo主要演示了通过AFN框架发送GET、POST请求、下载以上传任务,具体参数代码中都加了注释。


//
// ViewController.m
// 使用AFN框架
//
// Created by wujian on 16/7/23.
// Copyright © 2016年 wujian. All rights reserved.
//
#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController ()
@end
@implementation ViewController
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self upload];
}
//发送GET请求
-(void)get{
// 创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
NSDictionary * *dict = @ {@"username":@"wujian",
@"pwd":@"wujian",
@"type":@"JSON"
};
//发送GET请求
[manager GET:@"http://XXXXXX/login" parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
}
//发送POST请求
-(void)post{
//创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
NSDictionary *dict = @{@"username":@"520it",
@"pwd":@"520it",
@"type":@"JSON"
};
//发送POST请求
[manager POST:@"http://XXXX/login" parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"%@",responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@",error);
}];
}
//下载任务
-(void)download{
//创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
//确定请求路径
NSURL *url=[NSURL URLWithString:@"http://XXXXg/150326/140-150326141213-50.jpg"];
//创建请求对象
NSURLRequest *request=[NSURLRequest requestWithURL:url];
//封装下载任务
NSURLSessionDownloadTask *downloadTask=[manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {
//打印下载进度
NSLog(@"%f",1.0*downloadProgress.completedUnitCount/downloadProgress.totalUnitCount);
//这里的targetPath是文件存储的临时路径(不安全的)
} destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
//拼接安全的文件路径
NSString *path=[[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:response.suggestedFilename];
//返回路径的url
return [NSURL fileURLWithPath:path];
//下载完成后调用 这里的filePath是文件最终的存储路径
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
NSLog(@"完成-----");
}];
//提交请求
[downloadTask resume];
}
//上传
-(void)upload{
//创建会话管理者
AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
//非文件参数
NSDictionary * aliyunzixun@xxx.com {
@"username":@"xiaomage"
};
//02 发送POST请求上传文件
/*
第一个参数:请求路径
第二个参数:非文件参数 (字典)
第三个参数:constructingBodyWithBlock 处理上传的文件
第四个参数:progress 进度回调
第五个参数:success 成功之后的回调
responseObject:响应体
第六个参数:failure 失败之后的回调
*/
[manager POST:@"http://XXXX12/upload"
parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFileURL:[NSURL URLWithString:@"/Users/wujian/Desktop/Snip20160716_135.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(@"成功------");
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"失败------");
}];
}
@end 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值