IOS 网络请求之 AFNetWorking 3.x 使用(上)

IOS 网络请求之 AFNetWorking 3.x 使用

前言:

    计划把公司的网络请求与业务解耦,所以想着学习一下网络请求,最近学习了NSURLSession,今天来学习一下基于NSURLSession封装的优秀开源框架AFNetWorking 3.x,之前13年做iOS开发时用的ASIHttpRequest开源框架。

AFNetWorking

   AFNetWorking一款轻量级网络请求开源框架,基于iOS和mac os 网络进行扩展的高性能框架,大大降低了iOS开发工程师处理网络请求的难度,让iOS开发变成一件愉快的事情。

   GitHub地址:https://github.com/AFNetworking/AFNetworking

1.)AFHTTPSessionManager请求管理者
-(AFHTTPSessionManager *)sharedManager
{
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    //最大请求并发任务数
    manager.operationQueue.maxConcurrentOperationCount = 5;
// 请求格式
// AFHTTPRequestSerializer            二进制格式
// AFJSONRequestSerializer            JSON
// AFPropertyListRequestSerializer    PList(是一种特殊的XML,解析起来相对容易)

manager.requestSerializer = [AFHTTPRequestSerializer serializer]; // 上传普通格式

// 超时时间
manager.requestSerializer.timeoutInterval = 30.0f;
// 设置请求头
[manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Content-Encoding"];
// 设置接收的Content-Type
manager.responseSerializer.acceptableContentTypes = [[NSSet alloc] initWithObjects:@"application/xml", @"text/xml",@"text/html", @"application/json",@"text/plain",nil];

// 返回格式
// AFHTTPResponseSerializer           二进制格式
// AFJSONResponseSerializer           JSON
// AFXMLParserResponseSerializer      XML,只能返回XMLParser,还需要自己通过代理方法解析
// AFXMLDocumentResponseSerializer (Mac OS X)
// AFPropertyListResponseSerializer   PList
// AFImageResponseSerializer          Image
// AFCompoundResponseSerializer       组合

manager.responseSerializer = [AFJSONResponseSerializer serializer];//返回格式 JSON
//设置返回C的ontent-type
manager.responseSerializer.acceptableContentTypes=[[NSSet alloc] initWithObjects:@"application/xml", @"text/xml",@"text/html", @"application/json",@"text/plain",nil];

return manager;

}

2.)处理get请求
-(void)doGetRequest
{
    //创建请求地址
    NSString *url=@"http://api.nohttp.net/method";
    //构造参数
    NSDictionary *parameters=@{@"name":@"yanzhenjie",@"pwd":@"123"};
    //AFN管理者调用get请求方法
    [[self shareAFNManager] GET:url parameters:parameters progress:^(NSProgress * _Nonnull downloadProgress) {
        //返回请求返回进度
        NSLog(@"downloadProgress-->%@",downloadProgress);
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        //请求成功返回数据 根据responseSerializer 返回不同的数据格式
        NSLog(@"responseObject-->%@",responseObject);
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        //请求失败
        NSLog(@"error-->%@",error);
    }];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值