本文主要是介绍iOS 网络请求框架MKNetworkKit使用方法(欢迎提建议和分享遇到的问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
现在流行的第三方网络请求库有很多,ASIHTTPRequest、AFNetWorking等,每个人都自己的使用习惯,我推荐一个印度小伙子写的一个超轻量型框架MKNetWorkKit。
1.下载MKNetworkKit主要是下载MKNetWorkKIt这个。
2.新建一个ARC的工程。
3.将MKNetWorkKit这个文件夹拖到你新建的工程中。添加:SystemConfiguration.framework,CFNetwork.framework,Security.framework。
4.在ViewControler里的viewDidLoad方法里写下如下代码:
GET请求的:
- <span style="font-size:14px;">MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"192.168.2.176:9502/api"
- customHeaderFields:nil];
- MKNetworkOperation *op = [engine operationWithPath:@"login.php?userid=admin&userpwd=123" params:nil httpMethod:@"GET"];
- [op onCompletion:^(MKNetworkOperation *operation){
- NSLog(@"request string: %@",[op responseString]);
- }
- onError:^(NSError *error){
- }];
- [engine enqueueOperation:op];</span>
POST请求:
- <span style="font-size:14px;"> NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
- [dic setValue:@"admin" forKey:@"username"];
- [dic setValue:@"123" forKey:@"password"];
- MKNetworkOperation *op = [engine operationWithPath:@"user.do" params:dic httpMethod:@"POST"];
- [op onCompletion:^(MKNetworkOperation *operation) {
- NSLog(@"post response string :%@",[op responseString]);
- } onError:^(NSError *error) {
- DLog(@"%@", error);
- }];
- [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。
以上对比是根据本人测试及查资料所得,如有不正确的地方还希望大家指出,谢谢!
这篇关于iOS 网络请求框架MKNetworkKit使用方法(欢迎提建议和分享遇到的问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!