使用MKNetworkKit函数Demo

[color=red]一、引入MKNetworkKit[/color]

[color=blue]1,[/color]添加MKNetworkKit的到工程目录。
[color=blue]2,[/color]添加的CFNetwork.Framework,SystemConfiguration.framework,Security.framework和ImageIO.Framework。
[color=blue]3,[/color]PCH文件包含MKNetworkKit.h
[color=blue]4,[/color]如果您正在构建针对iOS,删除NSAlert + MKNetworkKitAdditions.h文件。
[color=blue]5,[/color]如果您正在构建的Mac,删除UIAlertView + MKNetworkKitAdditions.h文件。

[color=red]二、MKNetworkKit类[/color]

[color=blue]1,[/color]MKNetworkOperation
[color=blue]2,[/color]MKNetworkEngine
[color=blue]3,[/color]辅助类(apple' Reachability) and categories,网络以及扩展

1.1 -(MKStoreKit添加应用内购买)对于使用MKNetworkKit,你需要知道的方法由两个类MKNetworkOperation MKNetworkEngine。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:@"%@ \n %@ \n %@ \n %@",city,date_y,fl1,fl2]; //赋值
//
NSLog(@"%@",[completedOperation responseJSON]); //返回json

} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {

}];
[engine enqueueOperation:op];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值