AFNetworking的使用

2016-07-15  本文已影响52人  Ming普

AFNetworking

--
很多时候,AFNetworking都是目前iOS开发者网络库中不二的选择、Github上2w+的start数足见其流行,二从iOS7.0开始,苹果推出了新的网络库继承者NSURLSession之后,AFNetworking也毫不犹豫地加入了对其支持,AFN是对NSURLSesseion的封装。

屏幕快照 2016-07-14 下午6.51.17.png

屏幕快照 2016-07-14 下午6.52.46.png

屏幕快照 2016-07-14 下午6.53.30.png

get请求的实现流程

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    [manager GET:url parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
        //成功
        NSDictionary *obj = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        //失败
    }];
内部原理

1、当我们调用get函数之前,我们需要创建一个AFHTTPSessionManager,在之前我们使用的一般是AFHTTPRequestOperationManager.
2、在调用get请求后,我们一般都不需要干什么了,因为那些繁琐复杂的网络通信都交给他去做了,他首先会调用AFNetworkReachabilityManager验证是否联网.
3、然后参数序列化,用于网络请求.
4、调用AFSecurityPolicy类,AFSecurityPolicy用于验证HTTPS请求的证书,简单来说建立连接.
5、连接建立完成,证书验证成功,开始请求服务器.
6、从服务器返回数据,解析服务器数据,将数据反序列化.
7、我们得到data类型的数据,可以使用JSON解析直接解析成字典使用.

在这实现过程中他还帮我们做了开线程,异步下载,检查数据是否合法,图片解压等一些繁琐的事情,所以我们才能用得这么舒心,但是我们还是有必要研究一下内部的实现,只有保持着一颗求知的心,我们才能研究的更深,得到的更多.

新版本AFNetworking

1. NSURLConnection的API已废弃

AFNetworking 1.0建立在NSURLConnection的基础API之上 ,AFNetworking 2.0开始使用NSURLConnection的基础API ,以及较新基于NSURLSession的API的选项。 AFNetworking 3.0现已完全基于NSURLSession的API,这降低了维护的负担。在Xcode 7中,NSURLConnection的API已经正式被苹果弃用。虽然该API将继续运行,但将没有新功能将被添加,并且苹果已经通知所有基于网络的功能,以充分使NSURLSession向前发展。

说了那么多,其实真正用起来很简单,这里主要说的是他的改进方面,我们使用者其实用起来没那么麻烦,只是注意现在使用的是基于NSURLSession的API就可以了.

上一篇下一篇

猜你喜欢

热点阅读