4.NSURLSessionDataTask實(shí)現(xiàn)文件下載(離線斷點(diǎn)續(xù)傳下載)

前言:
1.使用NSURLSessionDownloadTask滿足不這個(gè)需要離線斷點(diǎn)續(xù)傳的下載需求捏境,所以這里就需要使用NSURLSessionDataTask的代理方法來(lái)處理下載大文件,并且實(shí)現(xiàn)離線斷點(diǎn)續(xù)傳。
因?yàn)镹SURLSessionDownloadTask和NSURLSessionDataTask分別都是NSURLSessionTask的上層繼承拓展劝赔。
比如NSURLSessionDownloadTask在代理方法中內(nèi)部實(shí)現(xiàn)了
 將文件邊下載邊移存到沙盒中,而使用NSURLSessionDataTask就需要自己完成這個(gè)過(guò)程了.
但是NSURLSessionDataTask可以實(shí)現(xiàn)離線斷點(diǎn)續(xù)傳屋讶。

2.實(shí)現(xiàn)離線的斷點(diǎn)續(xù)傳的基本思路:
  1商虐、比如應(yīng)用程序下載15M的小視視頻,但是下載到5M的時(shí)候這個(gè)程序可能是因?yàn)橛脩粜枰渫顺龌蛘呤且馔獗罎⑼顺龌蛘呤菙嗑W(wǎng)了稻爬,導(dǎo)致還有10M沒(méi)有下載成功嗜闻。
  2、為了能夠在重新啟動(dòng)程序之后還能夠繼續(xù)下載剩下的10M桅锄,需要在程序繼續(xù)下載的時(shí)候判斷和讀取本地緩存中是否存在已經(jīng)下載的數(shù)據(jù)和數(shù)據(jù)長(zhǎng)度琉雳,然后在該數(shù)據(jù)長(zhǎng)度之后繼續(xù)下載剩下的部分。

.1.NSURLSessionDataTask實(shí)現(xiàn)文件下載(未實(shí)現(xiàn)離線斷點(diǎn)續(xù)傳下載)

測(cè)試接口:用于測(cè)試代碼的API接口:[http://120.25.226.186:32812/resources/videos/minion_02.mp4]
 1-1友瘤、編程思路實(shí)現(xiàn)細(xì)節(jié):
    <a> 創(chuàng)建會(huì)話和請(qǐng)求翠肘,最后由會(huì)話創(chuàng)建請(qǐng)求任務(wù),并啟動(dòng)任務(wù)辫秧。
    <b>添加協(xié)議<NSURLSessionDataDelegate> 束倍,設(shè)置代理,實(shí)現(xiàn)代理方法盟戏。
    <c>在獲取服務(wù)器返回的響應(yīng)代理方法中獲取文件名和要下載的文件長(zhǎng)度绪妹,拼接沙盒路徑,根據(jù)該路徑創(chuàng)建輸出流柿究,開(kāi)啟輸出流邮旷。別忘了還需要設(shè)置接收服務(wù)器響應(yīng)。
    <d>在獲取服務(wù)器返回的數(shù)據(jù)代理方法中蝇摸,不斷的使用輸出流將數(shù)據(jù)寫(xiě)入婶肩,并通過(guò)獲取的數(shù)據(jù)設(shè)置進(jìn)度條進(jìn)度。
    <e>在結(jié)束服務(wù)器請(qǐng)求的代理方法中探入,關(guān)閉輸出流狡孔,釋放輸出流的指針。另外可能會(huì)需要打印錯(cuò)誤信息蜂嗽。
  1. 代碼實(shí)現(xiàn):


    image.png

2.NSURLSessionDataTask實(shí)現(xiàn)文件下載(實(shí)現(xiàn)離線斷點(diǎn)續(xù)傳下載)

實(shí)現(xiàn)的步驟:
 2-1苗膝、編程思路實(shí)現(xiàn)細(xì)節(jié):
    <a> 根據(jù)文件名拼接沙盒路徑,直接獲取該文件的屬性植旧,如果沒(méi)有該文件辱揭,則返回的是nil离唐,如果有該文件,則讀取文件其中的一個(gè)屬性:文件數(shù)據(jù)的長(zhǎng)度问窃。
    <b>創(chuàng)建會(huì)話和可變請(qǐng)求亥鬓,設(shè)置請(qǐng)求頭信息,告訴服務(wù)器返回的數(shù)據(jù)從已經(jīng)下載的文件長(zhǎng)度后面開(kāi)始下載域庇,最后由會(huì)話創(chuàng)建請(qǐng)求任務(wù)嵌戈,并啟動(dòng)任務(wù)。
    <c>添加協(xié)議<NSURLSessionDataDelegate> 听皿,設(shè)置代理熟呛,實(shí)現(xiàn)代理方法。
    <d>在獲取服務(wù)器返回的響應(yīng)代理方法中獲取文件名和要下載的文件長(zhǎng)度尉姨,拼接沙盒路徑庵朝,根據(jù)該路徑創(chuàng)建輸出流,開(kāi)啟輸出流又厉。別忘了還需要設(shè)置接收服務(wù)器響應(yīng)九府。
    <e>在獲取服務(wù)器返回的數(shù)據(jù)代理方法中,不斷的使用輸出流將數(shù)據(jù)寫(xiě)入覆致,并通過(guò)獲取的數(shù)據(jù)設(shè)置進(jìn)度條進(jìn)度侄旬。
    <f>在結(jié)束服務(wù)器請(qǐng)求的代理方法中,關(guān)閉輸出流篷朵,釋放輸出流的指針勾怒。另外可能會(huì)需要打印錯(cuò)誤信息。
    <g>最后別忘了釋放會(huì)話對(duì)象(兩種方法均可)

2代碼實(shí)現(xiàn):

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末声旺,一起剝皮案震驚了整個(gè)濱河市笔链,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腮猖,老刑警劉巖鉴扫,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異澈缺,居然都是意外死亡坪创,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)姐赡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)莱预,“玉大人,你說(shuō)我怎么就攤上這事项滑∫谰冢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)危喉。 經(jīng)常有香客問(wèn)我宋渔,道長(zhǎng),這世上最難降的妖魔是什么辜限? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任皇拣,我火速辦了婚禮,結(jié)果婚禮上薄嫡,老公的妹妹穿的比我還像新娘氧急。我一直安慰自己,他們只是感情好岂座,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布态蒂。 她就那樣靜靜地躺著,像睡著了一般费什。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上手素,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天鸳址,我揣著相機(jī)與錄音,去河邊找鬼泉懦。 笑死稿黍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的崩哩。 我是一名探鬼主播巡球,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邓嘹!你這毒婦竟也來(lái)了酣栈?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤汹押,失蹤者是張志新(化名)和其女友劉穎矿筝,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體棚贾,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窖维,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妙痹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铸史。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖怯伊,靈堂內(nèi)的尸體忽然破棺而出琳轿,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布利赋,位于F島的核電站水评,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏媚送。R本人自食惡果不足惜中燥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望塘偎。 院中可真熱鬧疗涉,春花似錦、人聲如沸吟秩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)涵防。三九已至闹伪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間壮池,已是汗流浹背偏瓤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留椰憋,地道東北人厅克。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像橙依,于是被迫代替她去往敵國(guó)和親证舟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容