美文网首页
YTKNetwork观后感

YTKNetwork观后感

作者: 风车2017 | 来源:发表于2017-10-31 11:46 被阅读0次

    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

    相关文章

      网友评论

          本文标题:YTKNetwork观后感

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