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://" 會自動幫你加上的。