您的位置:首页 > 移动开发 > IOS开发

IOS--MKNetworkKit的使用方法

2014-04-03 14:21 337 查看
第一需把MKNetworkKit框架添加到工程里面

其次需要引入一些支持lei库或者框架

如下:



最好是在-Prefix.pch文件夹下添加该类库的引用

首先用MKNetworkKit实现GET请求

NSString *path = @"/b.php?type=hello&&action=dd";

//前面不加http或者www就是主机名字
MKNetworkEngine *engine = [[MKNetworkEngine alloc]initWithHostName: @"localhost:8088" customHeaderFields:nil];

//MKNetworkOperation是NSOperation的子类,封装了相应的请求方法
MKNetworkOperation *op = [engine operationWithPath:path];

//请求代码块,请求成功在第一个里面做处理 请求错误在第二个做处理
[op addCompletionHandler:^(MKNetworkOperation *completedOperation) {
NSLog(@"%@",[completedOperation responseString]);
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
NSLog(@"请求错误 %@",error);
}];

//发起网络请求
[engine enqueueOperation:op];



用MKNetworkKit实现POST请求

NSString *path = @"/a.php";

//前面不加http或者www就是主机名字
MKNetworkEngine *engine = [[MKNetworkEngine alloc]initWithHostName: @"localhost:8088" customHeaderFields:nil];

//MKNetworkOperation是NSOperation的子类,封装了相应的请求方法

NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];

[dic setValue:@"hello" forKey:@"type"];
[dic setValue:@"world" forKey:@"action"];

MKNetworkOperation *op = [engine operationWithPath:path params:dic httpMethod:@"POST"];

//请求代码块,请求成功在第一个里面做处理 请求错误在第二个做处理
[op addCompletionHandler:^(MKNetworkOperation *completedOperation) {
NSLog(@"%@",[completedOperation responseString]);
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
NSLog(@"请求错误 %@",error);
}];

//发起网络请求
[engine enqueueOperation:op];

用MKNetworkKit实现图片下载
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString *path = @"/a.png";

//负责管理网络队列
MKNetworkEngine *engine = [[MKNetworkEngine alloc]initWithHostName: @"localhost:8088" customHeaderFields:nil];

//封装一次请求的类容
MKNetworkOperation *op = [engine operationWithPath:path params:nil httpMethod:@"POST"];

NSString *filePath = [docPath stringByAppendingPathComponent:@"te
4000
st1.jps"];

//制定下载位置
[op addDownloadStream:[NSOutputStream outputStreamToFileAtPath:filePath append:YES]];

//进行日志输出和progress变化
[op onDownloadProgressChanged:^(double progress) {
NSLog(@"dowbload progress:%0.2f",progress);
_progressView.progress = progress;
}];

//请求代码块,完成之后显示图片
[op addCompletionHandler:^(MKNetworkOperation *completedOperation) {
UIImage *img = [UIImage imageWithContentsOfFile:filePath];

_imgView.image = img;
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {

NSLog(@"%@",error);

}];

//请求开始
[engine enqueueOperation:op];

结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios