2016 - 1 - 25 第三方网络框架 AFN的简单使用

本文介绍了AFNetworking库的基本用法,包括文件上传的具体实现方式及如何根据服务器返回的不同数据格式进行相应的解析处理。

AFNetworking 底层是对NSURlSession 和对 NSURLConnect 的包装

 

1.具体使用方法可以参照github上的主页面,在这里只是举一个文件上传的简单列子

- (void)update{
    
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    
    [manager POST:@"http://120.25.226.186:32812/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {// 在这个block中设置需要上传的文件
        
        NSData *data = [NSData dataWithContentsOfFile:@"/Users/mac/Desktop/屏幕快照 2016-01-24 下午3.39.13.png"];
        
        [formData appendPartWithFileData:data name:@"file" fileName:@"test.png" mimeType:@"image/png"];
        
    } success:^(NSURLSessionDataTask *task, id responseObject) {
        
        NSLog(@"成功!");
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        
        NSLog(@"失败!");
    }];
}

 2.简单介绍下如何利用afnetworking解析服务器的数据

  2.1如果返回的数据格式是XML或者json时 可以按照以下办法:

- (void)update{
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
    
    // 可以改变mgr 解析的服务器返回数据的方式 默认是解析JSON
      // 在这里改为按xml格式解析数据
    mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
    
    
    NSDictionary *parameters = @{
                          @"username" : @"123",
                          @"pwd" : @"123",
                          @"type" : @"XML"
                          };
    [mgr GET:@"http://120.25.226.186:32812/login2" parameters:parameters success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"sece  %@",responseObject);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(@"error");
    }];
    
}

  2.2 如果是返回的是特殊格式  比如文件下载中返回数据

- (void)update{
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
    
    // 按服务器返回数据类型解析
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
    
//    [AFXMLParserResponseSerializer serializer]  // 服务器返回XML数据的解析器
//    [AFJSONResponseSerializer serializer] // 服务器返回JSON的数据解析器
    
    [mgr GET:@"http://120.25.226.186:32812/resources/images/minion_15.png" parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(@"sece  %@",responseObject);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(@"error");
    }];
    
}

 

 

 

转载于:https://www.cnblogs.com/BJTUzhengli/p/5156459.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值