iOS网络通信类库

iOS网络通信类库:ASIHTTPRequest,AFNetworking,MKNetWorkKIt.

ASIHTTPRequest在ios5.0之后就不在维护了,所以之后主要就是AFNetworking和MKNetworkKit。

AFNetWorking:

适合逻辑简单的应用,或者更适合开发资源尚不丰富的团队,因为AFN的易用性,而这样的应用(或团队)对底层网络控件的定制化要求也非常低。

MKNetworkKit:

1、高度的轻量级,仅仅只有2个主类

2、自主操作多个网络请求

3、更加准确的显示网络活动指标

4、自动设置网络速度,实现自动的2G、3G、wifi切换

5、自动缓冲技术的完美应用,实现网络操作记忆功能,当你掉线了又上线后,会继续执行未完成的网络请求

6、可以实现网络请求的暂停功能

7、准确无误的成功执行一次网络请求,摒弃后台的多次请求浪费

8、支持图片缓冲

9、支持ARC机制

10、在整个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://" 会自动帮你加上的。

你可能感兴趣的:(iOS网络通信类库)