AFN的二次封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AFN的二次封装相关的知识,希望对你有一定的参考价值。

创建一个管理单例类继承AFHTTPSessionManager,把数据请求的方法封装进去post方法

 

 

 

 

URLSession

Foundation中URLConnection的替代

支持后台运行的网络任务

暂停/停止/重启网络任务,不再需要NSOperation的封装

请求可以使用同样的配置容器

不同的Session可以使用不同的私有存储

block和代理同时起作用

直接从文件系统上传下载

 

NSURLSessionConfiguration

defaultSessionConfi - 缓存/cookie/证书全局非私有,近似于NSURLConnection

ephemeralSessionConfiguration - 缓存/cookie/证书全局私有但非持久化

backgroundSessionConfi - 适合于应用被挂起或收到remote notification

 

NSURLSessionConfiguration的一些属性

HTTPAdditionalHeaders:HTTP协议头部信息

allowCellularAccess/discretionary :前者运行运营商网络/后者对应后台网络任务进行优化(有WIFI/设备电量情况好的时候)

timeoutIntervalForRequest/ timeoutIntervalForResource: 前者每次有新data到达时重置,后者限制了整个资源请求时长

HTTPMaximumConnectionPerHost :对于一个host的最大并发连接数

 

NSURLSessionTask

可以发送cancel/resume/suspend消息

NSURLSessionDataTask 返回NSData

NSURLSessionDownloadTask 返回文件,下载进度可以恢复

NSURLSessionUploadTask 上传NSData/File/Stream

Task默认都是挂起的,记得要向Task发送resume消息

 

以上是关于AFN的二次封装的主要内容,如果未能解决你的问题,请参考以下文章

iOS项目相关@AFN&SDWeb的二次封装

swift4.0 对 afn 进行二次封装

iOS(Swift) 基于 Moya 的二次封装

react axios的二次封装

vue中axios的二次封装

vue项目中对axios的二次封装