iOS 网络请求框架MKNetworkKit使用方法(欢迎提建议和分享遇到的问题)

来源:互联网 发布:淘宝qmini巧克力真假 编辑:程序博客网 时间:2024/06/15 20:02

现在流行的第三方网络请求库有很多,ASIHTTPRequest、AFNetWorking等,每个人都自己的使用习惯,我推荐一个印度小伙子写的一个超轻量型框架MKNetWorkKit。






1.下载MKNetworkKit主要是下载MKNetWorkKIt这个。

2.新建一个ARC的工程。

3.将MKNetWorkKit这个文件夹拖到你新建的工程中。添加:SystemConfiguration.framework,CFNetwork.framework,Security.framework。

4.在ViewControler里的viewDidLoad方法里写下如下代码:

GET请求的:

[cpp] view plaincopy
  1. <span style="font-size:14px;">MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"192.168.2.176:9502/api"  
  2. customHeaderFields:nil];  
  3. MKNetworkOperation *op = [engine operationWithPath:@"login.php?userid=admin&userpwd=123" params:nil httpMethod:@"GET"];  
  4. [op onCompletion:^(MKNetworkOperation *operation){  
  5.     NSLog(@"request string: %@",[op responseString]);  
  6. }   
  7. onError:^(NSError *error){  
  8.   
  9. }];  
  10. [engine enqueueOperation:op];</span>  

POST请求:

[cpp] view plaincopy
  1. <span style="font-size:14px;">  NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];  
  2.   [dic setValue:@"admin" forKey:@"username"];  
  3.   [dic setValue:@"123" forKey:@"password"];  
  4.     
  5.   MKNetworkOperation *op = [engine operationWithPath:@"user.do" params:dic httpMethod:@"POST"];  
  6.     
  7.   [op onCompletion:^(MKNetworkOperation *operation) {  
  8.       NSLog(@"post response string :%@",[op responseString]);                  
  9.   } onError:^(NSError *error) {  
  10.       DLog(@"%@", error);  
  11.   }];  
  12.     
  13.   [engine enqueueOperation:op];</span>  

注意的地方:在初始化 MKNetworkEngine的时候,不要加上"http://" 会自动帮你加上的。



完善的demo 可参照:http://www.cocoachina.com/bbs/read.php?tid=95901





AFNetworking、MKNetworkKit和ASIHTTPRequest对比


之前一直在使用ASIHTTPRequest作为网络库,但是由于其停止更新,iOS7上可能出现更多的问题,于是决定更换网络库。

目前比较流行的网络库主要有AFNetworking和MKNetworkKit,经过一番google后,得出这三个库之间的比较如下:

 
AFNetworking
MKNetworkKit
ASIHTTPRequest更新情况维护和使用者相对多维护和使用者相对少停止更新
支持iOS和OSX
ARC
断点续传
否,可通过AFDownloadRequestOperation是是同步异步请求只支持异步否是
图片缓存到本地
否,通过SDURLCache或AFCache
图片缓存到内存
否后台下载是是是下载进度否,可通过AFDownloadRequestOperation是是缓存离线请求否,通过SDURLCache或AFCache是否JSON、XML是是否

根据以上对比,AFNetworking虽然相比MKNetworkKit功能要弱一些,但是它的扩展性更强,而且维护者比较多,从长期来看要优于MKNetworkKit。

以上对比是根据本人测试及查资料所得,如有不正确的地方还希望大家指出,谢谢!

0 0
原创粉丝点击