MKnetwork2.0

MKnetwork是一个非常轻量级的网络框架,主要由两个主要的类实现(MKNetworkHost、MKnetworkRequest)。MKNetworkHost主要是负责网络的逻辑处理,MKnetworkRequest主要是保持请求的状态(request、response、session task、handlers等)。

MKnetwork 2.0特点:

使用了iOS最新的网络框架NSURLSession实现网络请求,NSURLSession支持最新的HTTP2.0,IPV6等功能。

对所有的get请求的response和data进行缓存,落地缓存的原则是:当内存缓存到10条的时候自动触发,将缓存写入到磁盘文件,还可以通过调用flush接口强制写入。缓存的机制主要就是根据http response头里面的cache-Control和Expires策略。其实这个东西和底层的NSURLSession有很大的重复,唯一感觉不同的地方就是我们客户端可以对request手动设置打开这个缓存机制这样当response没有相应的缓存数据时候,可以使用客户端默认的缓存数据(接口数据默认缓存10 minutes,图片缓存7 days)。

不足:

原作者已经不维护,该框架基本走向死亡,不过里面的一些思想还是可以借鉴的。

不支持iOS 7

三种session对网络回调的队列不接受定制,默认为主线程,这样对于一些频繁请求的业务或者需要在回调函数中做大量计算逻辑这样就可能会造成主线程阻塞。

总结:

整体是有参考学习型的意义,不建议使用到具体的项目中去,属于非常轻量型的框架,颗粒型不强,对一些复杂的业务可能就没法很好的支持。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,721评论 2 7
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 概览 缓存组件应该说是每个客户端程序必备的核心组件,试想对于每个界面的访问都必须重新请求势必降低用户体验。但是如何...
    默默_David阅读 1,967评论 1 9
  • 若能相报十分,我定不吝啬一毫。 这句话是从我的偶像刘忻的长微博上借鉴的,我一直觉得她对于我而言已经不只是一个明星更...
    Suckerrr阅读 459评论 2 0