AFNetworking 大三注意点和简单实用

AFN GET 简单应用

//举例如下

- (void)loadData {

    

    /*

     参数说明:

     1.请求地址

     2.请求参数

     3.进度回调

     4.成功回调

     5.错误回调

     */

    //1. 请求的是网络数据

    NSString *URLString = @"http://news.coolban.com/Api/Index/news_list/app/2/cat/0/limit/20/time/1457168894/type/0";

    

    //2. 封装请求参数

    NSMutableDictionary *parameters = [NSMutableDictionary new];

    parameters[@"channel"] = @"appstore";

    parameters[@"uuid"] = @"19C2BF6A-94F8-4503-8394-2DCD07C36A8F";

    parameters[@"net"] = @"5";

    parameters[@"model"] = @"iPhone";

    parameters[@"ver"] = @"1.0.5";

    

   3.方法调用[[AFHTTPSessionManager managerGET:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        

        // AFN自动进行JSON的解析,返回数组或者字典(responseObject)

        NSLog(@"%@ %@",[responseObject class],responseObject);

        

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

        NSLog(@"%@",error);

    }];

}


AFN POST 简单应用

- (void)login {

    

    // 1.请求地址

    NSString *URLString = @"http://localhost/php/login/login.php";

    

    // 2.封装请求参数

    NSMutableDictionary *parameters = [NSMutableDictionary new];

    parameters[@"username"] = @"张三";

    parameters[@"password"] = @"zhang";

    

   //方法调用[[AFHTTPSessionManager managerPOST:URLString parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {


        NSLog(@"%@ %@",[responseObject class],responseObject);

        

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

        NSLog(@"%@",error);

    }];

}



使用AFN三大注意:

1.由于AFN  发送请求的默认序列号是:NSData(二进制)

假如请求是json数据应该修改,

manager.requestSerializer = [AFJSONRequestSerializer serializer];



2.由于AFN响应的数据是JSON,假如响应的是网页的时候.要修改

manager.responseSerializer = [AFHTTPResponseSerializer serializer];

返回的是二进制数字,可以根据返回的值,进行反序列化


例子:假如返回的是网页:

[manager POST:URLString parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

 //重点***初始化的方法:

 NSString *httpString = [[NSString allocinitWithData:responseObject encoding:NSUTF8StringEncoding];

        

        NSLog(@"%@ %@",[httpString class],httpString);

        

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

        NSLog(@"%@",error);

    }];


3.默认的响应的解析是JSON ,假如是网页的话处理如下:

AFN默认不支持接受text/html数据类型,只需要增加即可

例子:

// 2.1 增加AFN支持的文件类型

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json"@"text/json"@"text/javascript"@"text/html"nil];





/*

 AFNetworking 内部相关注意点,源代码收集如下:

 注意点:

 self.requestSerializer = [AFHTTPRequestSerializer serializer];

 self.responseSerializer = [AFJSONResponseSerializer serializer];

 //重要点

 manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];


 

 */


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值