asi没法用了,蛋疼了,在af和mk之间纠结,感觉af不适合我的口味,解析和网络耦合相对似乎重了点

mk似乎默认的不支持下载的断点续传,这里参考网上的代码处理了下,0修改mk的库,下面是实现的代码

//
//  RootViewController.m
//  webTest
//
//  Created by mmc on 13-11-24.
//  Copyright (c) 2013年 mmc. All rights reserved.
//

#import "RootViewController.h"
#import "MKNetworkEngine.h"@implementation RootViewController- (IBAction) getTest:(id)sender
{MKNetworkEngine* engine = [[MKNetworkEngine alloc] initWithHostName:@"192.168.1.105:8080"];[engine useCache];NSMutableDictionary* params = [NSMutableDictionary dictionaryWithCapacity:0];[params setObject:@"get数据1" forKey:@"arg1"];[params setObject:@"get数据2" forKey:@"arg2"];//最后的斜杠不能丢掉,不然会出问题MKNetworkOperation *operation = [engine operationWithPath:@"/yii/testApp/index.php?r=httpTest/getTest/"params:paramshttpMethod:@"GET"];[operation addCompletionHandler:^(MKNetworkOperation *completedOperation){NSString *responseString = [completedOperation responseString];NSLog(@"%@", responseString);if([completedOperation isCachedResponse]) {NSLog(@"Data from cache %@", [completedOperation responseString]);}else {NSLog(@"Data from server %@", [completedOperation responseString]);}}errorHandler:^(MKNetworkOperation *errorOp, NSError* error) {NSLog(@"%@",error);}];[engine enqueueOperation:operation];}- (IBAction) postTest:(id)sender
{MKNetworkEngine* engine = [[MKNetworkEngine alloc] initWithHostName:@"192.168.1.105:8080"];[engine useCache];NSMutableDictionary* params = [NSMutableDictionary dictionaryWithCapacity:0];[params setObject:@"post数据1" forKey:@"arg1"];[params setObject:@"post数据2" forKey:@"arg2"];MKNetworkOperation *operation = [engine operationWithPath:@"/yii/testApp/index.php?r=httpTest/postTest/"params:paramshttpMethod:@"POST"];[operation addCompletionHandler:^(MKNetworkOperation *completedOperation){NSString *responseString = [completedOperation responseString];NSLog(@"%@", responseString);if([completedOperation isCachedResponse]) {NSLog(@"Data from cache %@", [completedOperation responseString]);}else {NSLog(@"Data from server %@", [completedOperation responseString]);}}errorHandler:^(MKNetworkOperation *errorOp, NSError* error) {NSLog(@"%@",error);}];[engine enqueueOperation:operation];
}- (IBAction) downloadTest:(id)sender
{MKNetworkEngine* engine = [[MKNetworkEngine alloc] initWithHostName:@"127.0.0.1"];[engine useCache];NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);NSString *cachesDirectory = paths[0];NSString *downloadPath = [cachesDirectory stringByAppendingPathComponent:@"x.iso"];//判断之前是否下载过 如果有下载重新构造HeaderNSMutableDictionary *newHeadersDict = [[NSMutableDictionary alloc] init];NSFileManager *fileManager = [NSFileManager defaultManager];if ([fileManager fileExistsAtPath:downloadPath]){NSError *error = nil;unsigned long long fileSize = [[fileManager attributesOfItemAtPath:downloadPath error:&error] fileSize];NSString *headerRange = [NSString stringWithFormat:@"bytes=%llu-", fileSize];[newHeadersDict setObject:headerRange forKey:@"Range"];}MKNetworkOperation *operation = [engine operationWithURLString:@"http://192.168.1.105:8080/2.iso"];[operation addDownloadStream:[NSOutputStream outputStreamToFileAtPath:downloadPathappend:YES]];[operation addHeaders:newHeadersDict];[engine enqueueOperation:operation];//进度回调[operation onDownloadProgressChanged:^(double progress){NSLog(@"download %.2f", progress*100.0);}];//结束回调[operation addCompletionHandler:^(MKNetworkOperation* completedRequest){NSLog(@"download complete %@", completedRequest);}errorHandler:^(MKNetworkOperation *errorOp, NSError* error){NSLog(@"%@", error);}];
}@end

下一步,实现xxxBegin,xxxEnd,xxxFail,然后弄个delegates,做响应链传递,神奇的block,实在受不了,看起来真tmd不是一般的累啊,重回接口回调- -

ios之mknetworkkit笔记相关推荐

  1. ios开发学习笔记--Core Motion

    iOS开发学习笔记之CoreMotion-运动传感器 官网文档:CoreMotion Framework Reference 一.     简介 现在的苹果手机都基本有运动传感器,能够过获取到设备的加 ...

  2. IOS之学习笔记十五(协议和委托的使用)

    1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...

  3. iOS工程开发笔记二

    iOS工程开发笔记<二> 在Xcode 4, 5的模板工程中可以看到Precompile Prefix Header,但是在Xcode 6被去除了. Xcode 6去掉Precompile ...

  4. IOS开发学习笔记-----UILabel 详解

    IOS开发学习笔记-----UILabel 详解 01 //创建uilabel 02 UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMa ...

  5. IOS开发学习笔记(一)

    概述: iOS是苹果开发的手持设备操作系统(iPhone,iPad,iPod touch,iPad mini). 基于UNIX,层次架构:核心操作系统层(Core OS)-> 核心服务层(Cor ...

  6. ios逆向入门笔记-HOOK-QQ登录

    ios逆向入门笔记-HOOK-QQ登录 选择目标 砸壳 基本调试 Reveal+确定目标action及target 利用Logos 进行 hook 后续 选择目标 在经过之前的配置,这次有点小改动= ...

  7. 开源高仿印象笔记的iOS应用——朝夕笔记(Oncenote)

    iOS-Oncenote    这是一款类似于印象笔记Evernote的生活类iOS应用--朝夕笔记 Oncenote.我希望能为更多的iOS开发者提供帮助与服务.当然App中还有不少bug和可扩展的 ...

  8. mqtt android简书,iOS MQTT协议笔记

    前言 接到任务项目需要用MQTT来写消息推送,经过一段时间在网上查看资料后写下这篇文章,文章内容大都来自互联网,在文章最后也会贴出相关网址和Demo.写这文章主要目的是自己总结下经验做下笔记,以便日后 ...

  9. 2019年年初iOS招人心得笔记(附面试题)

    从筛选第一份简历,准备面试题,到成功招到两个人一共花了两个星期多一点,总体来说还是比较顺利的.两位通过者都比较稳重踏实,而且对技术也比较有追求.这也可能和我筛选简历比较谨慎有关系,这次筛选简历所花费的 ...

最新文章

  1. STM32与DS1302的接口电路
  2. 科大星云诗社动态20201231
  3. ubuntu 安装libusb 编译自己写的程序 发现很多undefined(排除包含头文件的问题)
  4. ethercat主站给从站分配多个地址_Profinet 与 EtherCAT 网关使用方法
  5. mysql function怎么创建_mysql,function_mysql创建函数出现问题?,mysql,function - phpStudy
  6. java maven 读取配置文件_Java项目和maven项目中如何获取设置配置文件中的属性
  7. SharingSphere 源码解析 -- 真实SQL生成探索
  8. 公司注销后公章怎么处理,自行保管风险
  9. windows下git安装配置
  10. 命题逻辑——自由之门与死亡之门
  11. 高通QFIL9008端口刷机报错问题
  12. 六轴传感器icm20602的自检和校准学习
  13. uniapp 实现微信聊天效果 阻止input失焦
  14. 使用lorax 构建定制化操作系统
  15. 开源office办公套件
  16. Silverlight 中文教程第二部分:使用布局管理 (木野狐译)
  17. 友华改设备标识命令_电信路由器密码怎么修改,路由器牌子是友华通信
  18. 英文月份简写、星期简写
  19. 无线投屏没有网络也可以投屏吗?
  20. 毕业设计选题推荐 - python毕设选题推荐 - 2023最新毕设选题 - 如何选题 避免被坑

热门文章

  1. GCC在C语言中内嵌汇编 asm __volatile__
  2. 学点数学(5)--线性规划对偶形式的理解
  3. Python外(4)-读写mat文件
  4. 三目运算符_C语言知识点:运算符的优先级和结合性
  5. clion编写C++ 使用多线程时候,CMakeLists.txt书写,引用-pthread
  6. 在Ubuntu环境下使用vcpkg安装sqlite_orm包文件
  7. C++primer第15章节详解面向对象程序设计
  8. 即时通讯开发(逐行、隔行扫描)
  9. 最受欢迎的5大Linux发行版
  10. SQL语句使用大全,最常用的sql语句