iOS開發之網絡編程--使用NSURLConnection實現大文件斷點續傳下載

DamAthaldo 8年前發布 | 32K 次閱讀 網絡編程 iOS開發 移動開發

來自: http://www.cnblogs.com/goodboy-heyang/p/5190516.html

斷點續傳的設置。關于 iOS開發之網絡編程--使用NSURLConnection實現大文件下載 的細節這里當然就不會再累述的啦。

斷點續傳的原理:

每次在向服務器請求下載數據的同時,要告訴服務器從整個下載文件的數據流的某個還未下載的位置開始下載,然后服務器就返回從那個位置開始的數據流。

圖片示意圖:

斷點續傳關鍵代碼示意圖:

用來做代碼練習的API接口

MP4小視頻: http://120.25.226.186:32812/resources/videos/minion_01.mp4

代碼實現(下面的源碼是在iOS開發之網絡編程--使用NSURLConnection實現大文件下載的基礎上進一步實現斷線續傳):

1、實現下載和停止下載,所以需要添加兩個按鈕,然后拖線連接什么的,你懂的。

2、關鍵完整代碼:

關于使用NSURLConnection實現大文件斷點續傳下載的補充:

在本人的 iOS開發之網絡編程--小文件下載 的隨筆博文中就提到的響應頭對象的屬性

response.expectedContentLength 返回的并不是下載整個文件的長度,而是將要下載的文件的長度

舉個實際中常有的例子:當我下載到1/3的長度然后取消下載了,之后再次點擊開始下載,這時候response.expectedContentLength返回的會是剩下2/3的長度。

所以在使用 response.expectedContentLength 注意不要因為不知其本質而使用錯了。

以上源碼中:

 本文由用戶 DamAthaldo 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!