iOS開發(fā)ASIHTTPRequest斷點續(xù)傳(下載)
本文為大家介紹了iOS開發(fā)ASIHTTPRequest斷點續(xù)傳(下載)的內(nèi)容,其中包括ASIHTTPRequest可以恢復中斷的下載,設(shè)置一個臨時下載路徑,斷點續(xù)傳的工作原理等等內(nèi)容。
從0.94版本開始,ASIHTTPRequest可以恢復中斷的下載。
這個特性只對下載數(shù)據(jù)到文件中有效,你必須為一下情況的request設(shè)置allowResumeForFileDownloads 為YES:
- 任何你希望將來可以斷點續(xù)傳的下載(否則,ASIHTTPRequest會在取消或者釋放內(nèi)存時將臨時文件刪除)
- 任何你要進行斷點續(xù)傳的下載
另外,你必須自己設(shè)置一個臨時下載路徑(setTemporaryFileDownloadPath),這個路徑是未完成的數(shù)據(jù)的路徑。新的數(shù)據(jù)將會被添加到這個文件,當下載完成時,這個文件將被移動到downloadDestinationPath 。
- - (IBAction)resumeInterruptedDownload:(id)sender
- {
- NSURL *url = [NSURL URLWithString:
- @"http://www.dreamingwish.com/wp-content/uploads/2011/10/asihttprequest-auth.png"];
- ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
- NSString *downloadPath = @"/Users/ben/Desktop/asi.png";
- //當request完成時,整個文件會被移動到這里
- [request setDownloadDestinationPath:downloadPath];
- //這個文件已經(jīng)被下載了一部分
- [request setTemporaryFileDownloadPath:@"/Users/ben/Desktop/asi.png.download"];
- [request setAllowResumeForFileDownloads:YES];
- [request startSynchronous];
- //整個文件將會在這里
- NSString *theContent = [NSString stringWithContentsOfFile:downloadPath];
- }
斷點續(xù)傳的工作原理是讀取temporaryFileDownloadPath的文件的大小,并使用Range: bytes=x HTTP頭來請求剩余的文件內(nèi)容。
ASIHTTPRequest并不檢測是否存在Accept-Ranges頭(因為額外的HEAD頭請求會消耗額外的資源),所以只有確定服務(wù)器支持斷點續(xù)傳下載時,再使用這個特性。




















