网络篇----第三方框架AFN01
AFN第三方框架是工作中经常使用的上传和下载的框架
下载路径
https://github.com/AFNetworking/AFNetworking
下载完后添加AFNetworking 这个文件夹到项目中去,
然后导入头文件AFNetworking.h
一、 2大管理对象
1.AFHTTPSessionManager
*对NSURLsession封装
2、AFHTTPRequestOperation
*对NSURLconnection封装
二、AFHTTPRequestOperation 的具体使用
1、创建管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
2、封装请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"username"] = @"哈哈哈";
params[@"pwd"] = @"123";
3、发送请求
NSString *url = @"http://localhost:8080/MJServer/login";
[mgr POST:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 请求成功的时候调用这个block
NSLog(@"请求成功--%@", responseObject);
// responseObject.delegate = self;
// [responseObject parse];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 请求失败的时候调用调用这个block
NSLog(@"请求失败");
}];
}
get请求
NSString *url = @"http://localhost:8080/MJServer/login";
[mgr GET:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 请求成功的时候调用这个block
NSLog(@"请求成功--%@", responseObject);
// responseObject.delegate = self;
// [responseObject parse];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 请求失败的时候调用调用这个block
NSLog(@"请求失败");
}];
}
三、对服务器返回数据解析
1、AFN可以自动对服务器返回数据的解析方式
*默认服务器是json来解析服务器返回的数据
2、设置对服务器返回数据的解析方式
1>当作是json来解析返回的数据
mgr.responseSerializer = [AFJSONResponseSerializer serializer];
responseObject的类型是NSDictionary或者NSArray
2>当作是xml来解析
// 声明:等会服务器返回的是XML数据
// responseObject的类型是NSXMLParser
mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
3>直接返回data
// 声明:不要对服务器返回的数据进行解析,直接返回data即可
// 如果是文件下载,肯定是用这个
// responseObject的类型是NSData
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
eg:
// 1.创建一个请求操作管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
// 声明:不要对服务器返回的数据进行解析,直接返回data即可
// 如果是文件下载,肯定是用这个
// responseObject的类型是NSData
mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
// 2.请求参数
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"username"] = @"哈哈哈";
params[@"pwd"] = @"123";
// 3.发送一个GET请求
NSString *url = @"http://localhost:8080/MJServer/login";
[mgr GET:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 请求成功的时候调用这个block
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"%@", dict);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 请求失败的时候调用调用这个block
NSLog(@"请求失败");
}];
}
3、注意
1、>服务器返回的是json数据
*AFJSONResponseSerializer
*AFHTTPResponseSerializer
2>服务器返回的是xml
*AFXMLParserResponseSerializer
*AFHTTPResponseSerializer
3.>返回其他数据
*AFHTTPResponseSerializer