一铅协、2大管理對象
1.AFHTTPRequestOperationManager
* 對NSURLConnection的封裝
2.AFHTTPSessionManager
* 對NSURLSession的封裝
二、AFHTTPRequestOperationManager的具體使用
1.創(chuàng)建管理者
AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
2.封裝請求參數(shù)
NSMutableDictionary *params = [NSMutableDictionary dictionary];
params[@"username"] = @"哈哈哈";
params[@"pwd"] = @"123";
3.發(fā)送請求
NSString *url = @"http://localhost:8080/MJServer/login";
[mgr POST:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 請求成功的時候調(diào)用這個block
NSLog(@"請求成功---%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 請求失敗的時候調(diào)用調(diào)用這個block
NSLog(@"請求失敗");
}];
// GET請求
[mgr GET:url parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// 請求成功的時候調(diào)用這個block
NSLog(@"請求成功---%@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// 請求失敗的時候調(diào)用調(diào)用這個block
NSLog(@"請求失敗");
}];
三亮靴、對服務器返回數(shù)據(jù)的解析
1.AFN可以自動對服務器返回的數(shù)據(jù)進行解析
* 默認將服務器返回的數(shù)據(jù)當做JSON來解析
2.設置對服務器返回數(shù)據(jù)的解析方式
1> 當做是JSON來解析(默認做法)
* mgr.responseSerializer = [AFJSONResponseSerializer serializer];
* responseObject的類型是NSDictionary或者NSArray
2> 當做是XML來解析
* mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
* responseObject的類型是NSXMLParser
3> 直接返回data
* 意思是:告訴AFN不要去解析服務器返回的數(shù)據(jù),保持原來的data即可
* mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
3.注意
* 服務器返回的數(shù)據(jù)一定要跟responseSerializer對得上
1> 服務器返回的是JSON數(shù)據(jù)
* AFJSONResponseSerializer
* AFHTTPResponseSerializer
2> 服務器返回的是XML數(shù)據(jù)
* AFXMLParserResponseSerializer
* AFHTTPResponseSerializer
3> 服務器返回的是其他數(shù)據(jù)
* AFHTTPResponseSerializer