MKNetworkKit関数Demoの使用
3985 ワード
一、MKNetworkKitの導入
1,MKNetworkKitのプロジェクトディレクトリに追加します.
2,追加したCFNetwork.Framework,SystemConfiguration.framework,Security.framework,ImageIO.Framework.
3,PCHファイルはMKNetworkKit.hを含む
4 iOSを構築している場合は、NSAlert+MKNetworkKitAdditions.hファイルを削除します.
5.構築中のMacの場合、UIalertView+MKNetworkKitAdditions.hファイルを削除します.
二、MKNetworkKit類
1,MKNetworkOperation
2,MKNetworkEngine
3,補助クラス(apple'Reachability)and categories,ネットワークおよび拡張
1.1-(MKStoreKit追加アプリケーション内購入)MKNetworkKitを使用するには、MKNetworkOperation MKNetworkEngineの2つのクラスから知る必要があります.MKNetworkOperationはASIHttpRequestと似ています.これはNSOperationのサブクラスで、リクエストとレスポンスクラスをパッケージします.アプリケーション内のリクエストタイミングを管理するためのMKNetworkOperationを作成します.
2.1-MKNetworkEngineは、appのネットワークキューの管理を担当する偽の単一クラスです.したがって、簡単なリクエストの場合は、MKNetworkEngineのメソッドを直接使用する必要があります.より複雑なカスタマイズでは、それを継承する必要があります.各MKNetworkEngineのサブクラスには、サーバの接続状況を通知する独自のReachabilityオブジェクトがあります.特別なRESTウェアとして考慮できます.プロセッサ要求は、MKNetworkEngineを継承することによって行われます.擬似シングル・インスタンス・モードであるため、各サブクラスの要求は、唯一のキューで送信されます.
解析json
1,MKNetworkKitのプロジェクトディレクトリに追加します.
2,追加したCFNetwork.Framework,SystemConfiguration.framework,Security.framework,ImageIO.Framework.
3,PCHファイルはMKNetworkKit.hを含む
4 iOSを構築している場合は、NSAlert+MKNetworkKitAdditions.hファイルを削除します.
5.構築中のMacの場合、UIalertView+MKNetworkKitAdditions.hファイルを削除します.
二、MKNetworkKit類
1,MKNetworkOperation
2,MKNetworkEngine
3,補助クラス(apple'Reachability)and categories,ネットワークおよび拡張
1.1-(MKStoreKit追加アプリケーション内購入)MKNetworkKitを使用するには、MKNetworkOperation MKNetworkEngineの2つのクラスから知る必要があります.MKNetworkOperationはASIHttpRequestと似ています.これはNSOperationのサブクラスで、リクエストとレスポンスクラスをパッケージします.アプリケーション内のリクエストタイミングを管理するためのMKNetworkOperationを作成します.
2.1-MKNetworkEngineは、appのネットワークキューの管理を担当する偽の単一クラスです.したがって、簡単なリクエストの場合は、MKNetworkEngineのメソッドを直接使用する必要があります.より複雑なカスタマイズでは、それを継承する必要があります.各MKNetworkEngineのサブクラスには、サーバの接続状況を通知する独自のReachabilityオブジェクトがあります.特別なRESTウェアとして考慮できます.プロセッサ要求は、MKNetworkEngineを継承することによって行われます.擬似シングル・インスタンス・モードであるため、各サブクラスの要求は、唯一のキューで送信されます.
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];
//post
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];
解析json
//
static MKNetworkEngine *engine;
+(MKNetworkEngine *)defaultEngine{
if (engine == nil) {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
engine = [[MKNetworkEngine alloc] initWithHostName:@"m.weather.com.cn"
customHeaderFields:nil];//initWithHostName , http//,
});
}
return engine;
}
MKNetworkOperation *operation = [engine operationWithPath:@"/data/101010100.html" params:nil httpMethod:@"GET"];
//operationWithPath GET
[operation addCompletionHandler:^(MKNetworkOperation *completedOperation) {
//******** json json
id json = [completedOperation responseJSON]; // json
NSDictionary *weatherDic = (NSDictionary *)json;//json , json dictionary
NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
NSString *city = [weatherInfo objectForKey:@"city"];
NSString *date_y = [weatherInfo objectForKey:@"date_y"];
NSString *fl1 = [weatherInfo objectForKey:@"fl1"];
NSString *fl2 = [weatherInfo objectForKey:@"fl2"];
self.textlable.text = [NSString stringWithFormat:@"%@
%@
%@
%@",city,date_y,fl1,fl2]; //
//
NSLog(@"%@",[completedOperation responseJSON]); // json
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
}];
[engine enqueueOperation:op];
}