网络篇----第三方框架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

 

 

    

 

posted @ 2015-08-18 10:31  Lee_M  阅读(118)  评论(0编辑  收藏  举报