AFNetworking类库使用示例

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

AFNetworking对NSURLConnection和NSURLSession进行了封装. 下面分别用这两种方法请求数据 网址是 用来请求JSON数据的网址.
   NSString *urlPath = @"http://10.0.8.8/sns/my/user_list.php";

    //  AFNetworking VS ASI 最大的优势是 有ARC支持

    //  AFNetworking目标是赶上ASI, AFNetworking致辞NSURLConnection和NSURLSession

    //  AFNetworking是使用NSURLConnection 和 NSURLSession

    //  #improt "AFNetworking.h"

    

    //1.使用 NSURLConnection版本的AFNetworking

    //1.1创建一个AFN管理对象

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    

    //1.2告诉manager只下载原始数据, 不要解析数据(一定要写)

    //     AFN即可以下载网络数据, 又可以解析json数据,如果不写下面的  自动就解析json

    //     由于做服务器的人返回json数据往往不规范, 凡是AFN又检查很严格,导致json解析往往失败

    //     下面这句话的意思是 告诉AFN千万别解析, 只需要给我裸数据就可以

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    

    //1.3使用GET下载数据

    NSDictionary *params = @{@"page" : @"2"};//表示第几页

    [manager GET:urlPath parameters:params success:

     ^(AFHTTPRequestOperation *operation, id responseObject) {

         NSData *data = operation.responseData;

         NSDictionary *dict = [NSJSONSerialization  JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

         NSLog(@"parase json is%@",dict);

     } 

     failure:^(AFHTTPRequestOperation *operation, NSError *error) {

         NSLog(@"下载错误 is %@",error);

    }];

    

  


    

    //2.使用NSURLSession版本的AFNetworking

    //2.1创建一个AFN管理对象

    AFHTTPSessionManager *smanager = [AFHTTPSessionManager manager];

    

    //2.2告诉manager只下载原始数据, 不要解析数据(一定要写

    smanager.responseSerializer = [AFHTTPResponseSerializer serializer];

    

    //2.3使用GET下载数据

    [smanager GET:urlPath parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {

        NSData *data = responseObject;

        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

        NSLog(@"parase session is %@",dict);

    } failure:^(NSURLSessionDataTask *task, NSError *error) {

        NSLog(@"下载错误 %@",error);

    }];