2011-12-29 45 views
2

当我下载一个这样的URL:http://tinyurl.com/csr2xc7时,ASIHTTPRequest的temporaryFile被创建并且数据不存储在内存中。然而,使用这样的URL:http://www.youtube-mp3.org/get?video_id=2MDYBFKjx2I&h=03492626150e7377f6def57cd3bdc16d临时文件不会被创建。ASIHTTPRequest setTemporaryFileDownloadPath:不与某些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]; 
}