AFNetWorking
1.AFNetworking简介
AFNetworking是一个为 iOS 和 Mac OSX 制作的令人愉快的网络库,它建立在URL 装载系统框架的顶层,内置在Cocoa里,扩展了强有力的高级网络抽象。它的模块架构被良好的设计,拥有丰富的功能。
AFNetworking配置:
(1)从github上下载关于afnetworking的包
(2)将包中的AFNetworking和UIKit+AFNetworking拖入工程项目
(3)导入AFWorking库 #import
2.AFNetworking基本操作
post操作:post是AFNetworking发送数据的主要形式
get操作:get是AFNetworking获取数据的主要形式
post/get 数据有两种形式:
1、纯文本的内容
2、操作的 body 部分带有文件(图片,音频或者其他二进制数据)
步骤:
1. 初始化Session对象
2. 设置请求的接口应返回数据的类型(1,2步可于viewDidload函数中调用)
3. post请求:
[self.Session POST:目标url parameters:数据 progress:^(进度)
success:^(NSURLSessionDataTask * task, id responseObject){
成功了该干的事
}
failure:^(NSURLSessionDataTask * task, NSError * error) {
失败了该干的事
}
];
4. get请求:
[self.session GET:目标url parameters:nil progress:^(NSProgress * downloadProgress) {
下载的进度
} success:^(NSURLSessionDataTask * task, id responseObject) {
请求成功
} failure:^(NSURLSessionDataTask * task, NSError * error) {
请求失败
}];
5.post与get的样例(来源–http://blog.csdn.net/nvermore_/article/details/50602356)
POST:
- (void)testPost{
NSString *urlString = @"http://quiet.local/posttest/login.php";
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager POST:urlString parameters:@{@"username":@"test",@"password":@"123"} progress:^(NSProgress * _Nonnull uploadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"str = %@",str);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"error = %@",error);
}];
}
Get:
(void)testGet{
NSString *urlString = @"http://www.baidu.com/s";
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
//参数1:传入网址
//参数2:传入网址的参数
//下载进度
//成功之后执行block
//失败之后执行block
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:urlString parameters:@{@"wd":@"kaka"} progress:^(NSProgress * _Nonnull downloadProgress) {
NSLog(@"downloadProgress = %f",downloadProgress.fractionCompleted);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"str = %@",str);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"error = %@",error);
}];
}