YTKNetwork观后感

request基本设计

1 把通过 [[YTKNetworkConfig sharedConfig] addUrlFilter:filter]; 把公共参数保存在YTKNetworkConfig 单例里面(在构建URL的时候从单例取出)。
2 把请求头请求参数以及成功失败block都保存在request类(主要做model用,此类不做数据处理)。
3 request使用start调用 [[YTKNetworkAgent sharedAgent] addRequest:request]
4 [[YTKNetworkAgent sharedAgent] addRequest:request]此函数主要是构建URL并使用AFNetworking生成一个NSURLSessionTask实例给request。然后保存在一个字典里(以NSURLSessionTask的taskIdentifier为key保存了request)。
5 当NSURLSessionTask回调后在字典里根据taskIdentifier找到request然后调用对应的成功失败block。

总结一下,里面是把request类做model,YTKNetworkAgent做请求动作了。

断点续传(大致上跟上面差不多,只是有一点区别);

1 给request设置个保存路径。
2 当request有保存路径时候,YTKNetworkAgent从tmp的Incomplete目录取出上次下载的数据创建一个downloadTask。
3 当失败的时候,把下载的数据放在tmp目录的Incomplete下(命名规则是用md5)。
4 当所有数据都下载好了,回调成功block。

YTKBatchRequest

其实就是把几个request封装在YTKBatchRequest的一个array里面。然后在YTKBatchRequest对array里面的request都调用start请求。当其中有一个回调失败的时候在YTKBatchRequest取消其他requset回调,并调用YTKBatchRequest的失败block。而当其中一个回调成功的时候,则成功的计数加1。当成功计数跟array数目一样多的时候,调用YTKBatchRequest的成功block。

YTKChainRequest

跟YTKBatchRequest差不多,只是在array里面上一个request成功回调后才调用下一个request。

参考

https://github.com/yuantiku/YTKNetwork/tree/2.0.4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,132评论 6 13
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,251评论 1 23
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666阅读 1,420评论 0 6
  • 予绝不弃报国义,今惟一死尽臣职。 甲午海战捐一躯,粉身碎骨誓杀敌。 堂堂中华北洋师,不灭倭寇吞折齿。 同心袍泽四万...
    顧勇詩書阅读 631评论 2 2