我正在使用downloadTaskWithRequest
下载一些文件,我正在使用KVO来观察进展。
这是我的代码:
// create the request from an url
NSMutableURLRequest *request = [mySession.requestSerializer requestWithMethod:@"GET" URLString:url parameters:nil error:&serializationError];
NSProgress *localProgress = nil;
NSURLSessionDownloadTask *downloadTask = [mySession downloadTaskWithRequest:request
progress:localProgress
destination:^NSURL *(NSURL *targetPath, NSURLResponse *response)
{ ... }
completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error)
{ ... }];
下载文件效果很好,但为什么在某些情况下我可以跟进进度,而对于其他人来说,进度永远不会更新?
进展确定的网址:
url = @"http://www.fond-ecran-hd.net/pc-driver/1351.jpg";
没有进展的网址:
url = @"http://lorempixel.com/1920/1920/";
我知道工作和非工作情况之间的区别在于,某些URL是直接链接到文件(/path/file.ext)而不是其他URL。 但我想知道为什么,如果有解决办法......
答案 0 :(得分:0)
我从URL获取的HTTP Response对象必须包含一个名为Content-Length的标题,它将给出文件的长度!
如果服务器没有返回此信息,则似乎无法跟踪下载进度。