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对网络回调的队列不接受定制,默认为主线程,这样对于一些频繁请求的业务或者需要在回调函数中做大量计算逻辑这样就可能会造成主线程阻塞。
总结:
整体是有参考学习型的意义,不建议使用到具体的项目中去,属于非常轻量型的框架,颗粒型不强,对一些复杂的业务可能就没法很好的支持。