2011-12-29 1 views
2

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

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

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

ответ

0

Я смог решить это сам. Когда исходный запрос перенаправляется, временный файл также удаляется. Таким образом, в 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]; 
}