ASIHTTPRequest setTeilitaryFileDownloadPath: не работает с некоторыми URL - PullRequest
2 голосов
/ 30 декабря 2011

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

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

Как мне заставить это работать?

1 Ответ

0 голосов
/ 30 декабря 2011

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