博客> AFNetWorking ASI
AFNetWorking ASI
2020-02-19 05:28 评论:0 阅读:846 张涛·
AFNetworking ASI

afnetworking 可以设置用那种格式解析服务器返回的数据 ; 默认的类型是json manager.responseSerializer = [AFJSONResponseSerializer serializer];

可以修改成xml manager.responseSerializer = [AFXMLParserResponseSerializer serializer];

可以修改成data manager.responseSerializer = [AFHTTPResponseSerializer serializer];

服务器返回的数据一定要跟responseSerializer对得上。

一、2大管理对象 AFHTTPSessionManager 是对NSURLSession 的封装 AFHTTPRequestOperationManager 是对NSURLConnection的封装

文件下载,文件比较大,断点续传技术:普通的所有http服务器都支持 文件上传,文件比较大,断点续传技术:一般的服务器都不支持,常用的技术是Socket

二、检测网络状态 AFNetworkReachabilityManager

asi中只要你实现了request: didReceiveData: 方法 就意味着你要自己处理返回数据 那么responseData|responseString就没有值 这是一个坑。 asi监听请求有三种方法1.成为代理,遵守ASIHTTPRequestDelegate协议,实现协议中的代理方法 2.成为代理,不遵守ASIHTTPRequestDelegate协议,自定义代理方法 3.设置block asi中ASIHTTPRequest 发送get请求 ASIFormDataRequest 发送post请求

 F93F6BF2-C342-424A-A437-8AF0AAAB67C2.png

AFN和ASI 区别

 9FC8D333-E8B6-4B9B-ABA1-E8206BEA4034.png  04B8ED5D-BEA1-405B-9767-8928D807BB88.png

原文链接http://www.cocoachina.com/ios/20161209/18277.html ---------------------------------------------------afnetworking结构------------------------------------------------------- 详细介绍afnetworking3.0(去掉了NSUrlConnection《太老了》的封装AFURLConnection) 去掉support files模块,afn分为以下五大模块: 1网络通讯模块(AFHTTPSessionManager、AFURLSessionManager 其中AFHTTPSessionManager继承了AFURLSessionManager) 2网络状态监听模块(reachability) 3网络通讯安全策略模块(security) 4网络通讯信息序列化/反序列化模块(Serialization) 5对于ios UIKit 库的宽展(UIKit)

---------------------------------------------创建一个请求的过程------------------------------------------------------- AFHTTPSessionManager manager = [[AFHTTPSessionManager alloc]init];初始化方法最终对调用以下方法  52B27E1C-6BEE-4DA9-BFA1-EF283A930180.png 这个方法作用:调用父类(AFURLSessionManager)的初始化方法,并保存了baseUrl,生成了一个请求序列对象和一个相应序列对象。 再看父类的初始化方法  5B7E08D6-5E8F-4A61-ACE1-218C89A56C8E.png 说明: 1.self.operationQueue.maxConcurrentOperationCount = 1;这个operationQueue就是我们代理回调的queue。这里把代理回调的线程并发数设置为1了。说明:等等 2.self.mutableTaskDelegatesKeyedByTaskIdentifier,这个是用来让每一个请求task和我们自定义的AF代理来建立映射用的,其实AF对task的代理进行了一个封装,并且转发代理到AF自定义的代理。 3.[self.session getTasksWithCompletionHandler:^(NSArray dataTasks, NSArray uploadTasks, NSArray downloadTasks) { }];这个方法中清空了task 的关联代理。

收藏
0
sina weixin mail 回到顶部