iOS网络通讯类库:ASIHTTPRequest,AFNetworking,MKNetWorkKIt.php
ASIHTTPRequest在ios5.0以后就不在维护了,因此以后主要就是AFNetworking和MKNetworkKit。ios
AFNetWorking:git
适合逻辑简单的应用,或者更适合开发资源尚不丰富的团队,由于AFN的易用性,而这样的应用(或团队)对底层网络控件的定制化要求也很是低。github
MKNetworkKit:api
一、高度的轻量级,仅仅只有2个主类网络
二、自主操做多个网络请求app
三、更加准确的显示网络活动指标post
四、自动设置网络速度,实现自动的2G、3G、wifi切换spa
五、自动缓冲技术的完美应用,实现网络操做记忆功能,当你掉线了又上线后,会继续执行未完成的网络请求队列
六、能够实现网络请求的暂停功能
七、准确无误的成功执行一次网络请求,摒弃后台的屡次请求浪费
八、支持图片缓冲
九、支持ARC机制
十、在整个app中能够只用一个队列(queue),队列的大小能够自动调整
MKNetWorkKIt的使用方法:
1.下载MKNetWorkKIt主要是下载MKNetWorkKIt这个。
2.新建一个ARC的工程。
3.将MKNetWorkKit这个文件夹拖到你新建的工程中。添加:SystemConfiguration.framework,CFNetwork.framework,Security.framework。
4.在ViewControler里的viewDidLoad方法里写下以下代码:
GET请求的:
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请求:
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>
强烈注意的地方:
1,github下载了该项目后,若是想运行其demo,必定 要打开MKNetworkKit.xcworkspace该文件,若单独打开,则编译时会提示缺乏libMKNetworkKit-iOS.a文件!!!
2,在初始化 MKNetworkEngine的时候,不要加上"http://" 会自动帮你加上的。