AFNetWorking基于系统NSURLConnection和NSURLSession实现的,也是基于CFNetWork的,AFN回调采用Block,使用方便。
自己的网络库:当第三方库发生重大更新的时候导致我们手忙脚乱
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解析直接解析成字典使用.
在这实现过程中他还帮我们做了开线程,异步下载,检查数据是否合法,图片解压等一些繁琐的事情