美文网首页
AFNetworking的使用

AFNetworking的使用

作者: Ming普 | 来源:发表于2016-07-15 14:17 被阅读52次

    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就可以了.

    相关文章

      网友评论

          本文标题:AFNetworking的使用

          本文链接:https://www.haomeiwen.com/subject/hlaejttx.html