前言:iOS開發之網路編程--使用NSURLConnection實現大文件斷點續傳下載是在前篇iOS開發之網路編程--使用NSURLConnection實現大文件下載的基礎上進行 斷點續傳的設置。關於iOS開發之網路編程--使用NSURLConnection實現大文件下載的細節這裡當然就不會再累述的
前言:iOS開發之網路編程--使用NSURLConnection實現大文件斷點續傳下載是在前篇iOS開發之網路編程--使用NSURLConnection實現大文件下載的基礎上進行
斷點續傳的設置。關於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註意不要因為不知其本質而使用錯了。
以上源碼中:
轉載請註明出處:iOS開發之網路編程--使用NSURLConnection實現大文件斷點續傳下載,尊重勞動成果。