ASIHTTPRequest setTemporaryFileDownloadPath: не работает с некоторыми URL-адресами

Когда я загружаю такой URL-адрес: http://tinyurl.com/csr2xc7, создается временный файл ASIHTTPRequest и данные не сохраняются в памяти. Однако с таким URL-адресом: http://www.youtube-mp3.org/get?video_id=2MDYBFKjx2I&h=03492626150e7377f6def57cd3bdc16d временный файл не создается.

Разница в том, что второй URL-адрес сразу же начинает загрузку, когда вы его открываете, тогда как первый URL-адрес отображает только видео, которое можно загрузить с помощью запроса. Также, когда вы открываете второй URL-адрес, вы сначала перенаправляетесь до начала загрузки.

Как я могу заставить это работать?


person JonasG    schedule 29.12.2011    source источник


Ответы (1)


Я смог решить это сам. Когда исходный запрос перенаправляется, временный файл также удаляется. Итак, в request:willRedirectToURL: вам просто нужно снова установить путь, и теперь он работает как шарм :)

- (void)request:(ASIHTTPRequest *)orig willRedirectToURL:(NSURL *)newURL {
    NSArray *ar = [NSArray arrayWithContentsOfFile:@"/var/mobile/Library..."];
    [request setDownloadDestinationPath:[[ar objectAtIndex:orig.tag] valueForKey:@"Path"]];
    [request setTemporaryFileDownloadPath:[[ar objectAtIndex:orig.tag] valueForKey:@"tmp"]];
    [request redirectToURL:newURL];
}
person JonasG    schedule 29.12.2011