-
AFNetworking的POST上传
- (void)download {
// 1.创建网络管理者
// AFHTTPSessionManager 基于NSURLSession
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
// 2.利用网络管理者下载数据
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_01.mp4"]];
/*
destination
- targetPath: 系统给我们自动写入的文件路径
- block的返回值, 要求返回一个URL, 返回的这个URL就是剪切的位置的路径
completionHandler
- url :destination返回的URL
*/
/*
@property int64_t totalUnitCount; 需要下载文件的总大小
@property int64_t completedUnitCount; 当前已经下载的大小
*/
NSProgress *progress = nil;
NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:&progress destination:^ NSURL * (NSURL * targetPath, NSURLResponse * response) {
NSLog(@"targetPath = %@", targetPath.absoluteString);
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *toPath = [path stringByAppendingPathComponent:response.suggestedFilename];
NSLog(@"toPath = %@", toPath);
return [NSURL fileURLWithPath:toPath];
} completionHandler:^ void(NSURLResponse * response, NSURL * url, NSError * error) {
// NSLog(@"下载完毕 url = %@", url.absoluteString);
}];
// 给Progress添加监听 KVO
[progress addObserver:self forKeyPath:@"completedUnitCount" options:NSKeyValueObservingOptionNew context:nil];
// 3.启动任务
[task resume];
NSLog(@"%lld, %lld", progress.totalUnitCount, progress.completedUnitCount);
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(NSProgress *)progress change:(NSDictionary *)change context:(void *)context {
// NSLog(@"%lld, %lld", progress.totalUnitCount, progress.completedUnitCount);
NSLog(@"%f", 1.0 * progress.completedUnitCount / progress.totalUnitCount);
}
-
相关阅读:
Net使用RdKafka引发异常RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常
mysql数据与Hadoop之间导入导出之Sqoop实例
如何将mysql数据导入Hadoop之Sqoop安装
常见的几种Flume日志收集场景实战
Restful服务应不应该在URI中加入版本号
sudo
shell实现SSH自动登陆
使用465端口加密发邮件
linux下c++如何输入不回显
tmp
-
原文地址:https://www.cnblogs.com/dududuzhaoji/p/5473811.html
Copyright © 2020-2023
润新知