┌──┐┌──┐┌──┐┌──┐┌──┐
││││└┐┌┘│┌┐││ ─┤└┐┌┘
││││ ││ │││││ ─┤ ││
└┴┴┘ └┘ └┘└┘└──┘ └┘
# MTNET
MTNET是一个十分轻量、功能强大的ios的http网络库,用来处理有大量很频繁发起http请求的场景,在已上架的数歀app使用中表现良好稳定。
其它的网络库上手容易,但要处理比较密集和较大文件下载时就显得比较麻烦。
使用下载池管理所有网络下载,可设置同时下载的请求数,针对单个请求可以中止和取消,提供两种数据接收方式:内存接收和磁盘接收。
磁盘接收数据会将接收到的数据小块小块的写入磁盘,避免了如果下载文件比较大时造成的内存吃紧
开发者可继承MTDownloadRecvDataFileSystem类,灵活指定下载文件的存储路径和存储文件名,并提供文件是否缓存和获取缓存文件的方法
### 已修改为 ARC 版本
~~~ ***MTNET是MRC版本*** ~~~
~~~ 有很多同学反馈需要支持arc版本, 会尽快支持 ~~~
# 使用
引入头文件
```objectivec
#import "MTDownloaderHelper.h"
#import "MTDownloadObjectModel.h"
#import "MTDownloadRequest.h"
#import "MTDownloadRecvData.h"
```
声明下载池
```objectivec
@property (nonatomic, strong) MTDownloaderHelper * downloadHelper;
...
self.downloadHelper = [[MTDownloaderHelper alloc] init];
```
设置下载池同时最多可执行的任务数
```objectivec
[self.downloadHelper setMaxConcurrentTaskCount:5];
```
可给下载池中所有链接指定同一个下载超时的设置
```objectivec
[self.downloadHelper setTimeout:20];
```
向下载池中投入一个下载请求
```objectivec
MTDownloadRequest * request = [[MTDownloadRequest alloc] init];
MTDownloadObjectModel * downloadMdel = [[MTDownloadObjectModel alloc] init];
downloadMdel.url = @"http://www.baidu.com";
request.downloadModel = downloadMdel;
request.delegate = self;
[self.downloadHelper addDownloadRequest:request];
```
取消一个下载请求,如此下载请求还未开始下载就从下载队列中移除。如已开始下开就中止当前下载
```objectivec
[self.downloadHelper cancelDownloadRequestByName:request.name];
```
使用`MTDownloadRequestDelegate` 获取下载结果
```objectivec
- (void) didTaskReceiveDataFinish : (NSData *) theData request:(MTDownloadRequest*) request
{
NSLog(@"download ok");
}
- (void) taskDataDownloadFailed : (NSError *) error request:(MTDownloadRequest*) request
{
NSLog(@"download failed:%@", error);
}
```
###自定义接收下载规则
可以继承`MTDownloadRecvDataFileSystem`自己制定下载规则,在此类中还提供了`processRecvAllDataFinish` 和 `processRecvAllDataFalied`这两个方法,重写就可以自定义处理当下载数据出错或者成功后的操作
比如 下载数据出错后需要清理缓存,下载成功后需要对文件进行解压、压缩、图片缩放等
```objectivec
#import "MTDownloadRecvData.h"
@interface AppImageDowloadRecv : MTDownloadRecvDataFileSystem
- (void) setFileName:(NSString *) fileName;
@end
#import "AppImageDowloadRecv.h"
#import "MTPath.h"
#import "MTFile.h"
#import "NSString+Extension.h"
#import "mcfDef.h"
@implementation AppImageDowloadRecv
- (id) init
{
self = [super init];
if(self)
{
self.localCacheDirPath = [MTPath Combine:kCache combinePath:@"appdata"];
static BOOL created = FALSE;
if (!created) {
created = TRUE;
[MTPath createDirectory:self.localCacheDirPath withAttributes:nil];
}
}
return self;
}
- (void) setFileName:(NSString *) fileName
{
if ([NSString isNilOrEmpty:fileName])
{
return;
}
self.name = fileName;
self.localFullPath = [MTPath Combine:self.localCacheDirPath combinePath:fileName];
}
- (BOOL) bCached
{
return [MTFile fileExistsAtPath:self.localFullPath];
}
- (NSData *) data
{
if ([self bCached])
{
return [NSData dataWithContentsOfFile:self.localFullPath];
}
return nil;
}
@end
```
向下载池中投入一个自己定义下载规则的请求
```objectivec
MTDownloadRequest * request = [[MTDownloadRequest alloc] init];
MTDownloadObjectModel * downloadMdel = [[MTDownloadObjectModel alloc] init];
downloadMdel.url = @"http://www.baidu.com";
request.downloadModel = downloadMdel;
AppImageDowloadRecv * recvData = [[AppImageDowloadRecv alloc] init];
[recvData setFileName:@"filename"];
request.recvData = recvData;
request.delegate = self;
[self.downloadHelper addDownloadRequest:request];
```
---
If you like this project, give a start ;)
---
Using Mtnet in your App? Let me know [weibo](http://weibo.com/wgblog) or [gang.wang.china@gmail.com](gang.wang.china@gmail.com) :).
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
原信息产业部(MII)为了验证第三代移动通信技术的可行性以及成熟性,为国家3G发展提供决策和规划,由国家计委、原信息产业部共同出资兴建,由原信息产业部电信研究院负责,原信息产业部电信传输研究所具体承建了国家重点通信试验网工程—数字移动通信模拟试验网(MTNet),并于2001年9月正式通过验收。 MTNet最初的目的如下。 (1)为政府管理市场和规范市场提供必要的验证手段。 (2)为移动通信产业的新产品、新业务和新技术开发的验证提供综合测试实验验证基地,为新设备、新业务、新技术研发提供完整的系统测试平台和综合参考环境;测试和模拟研发中遇到的各类技术问题;进行不同厂家系统的兼容性、安全性等测试;提供中间实验环境。 (3)模拟商用网络,为运营者解决部分网络建设、运行、扩容、升级改造以及网络演进过程中可能遇到的问题。
资源推荐
资源详情
资源评论















收起资源包目录





































































































共 132 条
- 1
- 2
资源评论


野生的狒狒
- 粉丝: 84
- 资源: 1067
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
