Я написал инструмент для скачивания.Это нормально работает с NSURLDownload.Но когда дело доходит до возобновления загрузки, у меня возникают некоторые проблемы.РезюмеДанных всегда ноль!Когда я загружаю те же файлы с помощью jDownloader, останавливаю загрузку и возобновляю снова, jDownloader возобновляет загрузку!Так что это возможно с этими файлами и сервером!
код:
- (void)startDownload {
status = @"loading";
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
urlDownload = [[NSURLDownload alloc] initWithRequest:theRequest delegate:self];
[urlDownload setDeletesFileUponFailure:NO];
if (!urlDownload) {
[self error:@"Failed starting download request!"];
}
}
test:
- (IBAction)stopWithResumeOption:(id)sender {
[urlDownload cancel];
NSData *tempData = [urlDownload resumeData];
NSLog(@"%@",tempData);
}
Если я остановлю загрузку во время загрузки с помощью "stopWithResumeOption"Я всегда получаю ноль!Я что-то пропустил?!
Редактировать:
Какую информацию вообще возвращает resumeData?Если это только длина уже загруженных данных или что-то в этом роде, может быть, я смогу создать эти данные резюме самостоятельно ?!Кто-нибудь пробовал это раньше?
Редактировать 2:
Вот заголовок ответа одного файла, который я пытаюсь возобновить:
{
"Accept-Ranges" = bytes;
"Cache-Control" = "max-age=0";
Connection = "keep-alive";
"Content-Length" = 43346723;
"Content-Type" = "application/pdf";
Date = "Sun, 13 Mar 2011 13:08:44 GMT";
Etag = 1185n;
Pragma = public;
Server = dbws;
"X-Robots-Tag" = "noindex,nofollow";
}
Даже ETag предоставляетсясервер!
Есть ли шанс сделать это следующим образом:
- (IBAction) resume:(id)sender {
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSString *authHeader = [NSString stringWithFormat:@"bytes=%llu-%llu",bytesReceived, totalBytesToLoad];
[request addValue:authHeader forHTTPHeaderField:@"Range"];
urlDownload = [[NSURLDownload alloc] initWithRequest:request delegate:self];
}
Но я не уверен, как продолжить эту попытку ...