MKNetworkKit 与 ASIHttpRequest 的比较

MKNetworkKit是一硬度哥们搞出来的http通信framework,因为 ASIHttpRequest已经不在更新了,所以就找到了这个仍然维护的项目。


mk相对与asi在代码结构和提供的api上的确有一些方便之处




MKNetworkKit VS ASIHttpRequestMKNetworkKit 在使用的时候分为两个部分:
             1、MKNetworkOperation ≈ ASIHttpRequest (wrap request & response) 
2、MKNetworkEngine --- manage queue


             使用MK的特色是,我们的viewController只和MKNetworkEngine进行进行交互,对于viewcontroller来说,MK只是⼀一个提供数据的对象,隐藏了关于网络的细节。比如说,url和params。
             因此,任何⼀一个网络数据的服务,都需要我们subclass⼀一个MKNetworkEngine。因为每⼀一个engine中的url,已及获取数据的格式不同。
             view controller与engine之间的数据交换通过block,这样就可以异步通信
             ........................................................................................................................... 
例,我们要从网站上获取今天的气温,engine提供的接口应该是:
class MyEngine-(float)temperature;//我们不需要提供任何有关网络的信息,只需要要求engine给我们数据...........................................................................................................................

 例,下载文件,下面这段代码出现的位置应该是在我们subclass的engine中MKNetworkOperation* operation;
             //初始化。。。。
[operation setDownloadStream:[NSOutputStream outputStreamToFileAtPath:@"../.."spend:YES]];//我们唯⼀一要做的事情就是设置下载的outputStream

             [self enqueueOperation:operation];//self就是engine,它主要是用来对queue进行管理........................................................................................................................... 
例,上传文件
[operation addFile:@"../.." forKey:@"image"];...........................................................................................................................



             MK还提供了⼀一些简化用户工作的method,比如可以直接以image,string,data,或json的类型来获取接收到的数据。
             MK提供freeze operation功能,假如当前程序进入后台,则当程序回到前台时,过去提交的未完成的operation就会继续执行

你可能感兴趣的:(MKNetworkKit 与 ASIHttpRequest 的比较)