okhttp如何實現(xiàn)多文件斷點下載

轉(zhuǎn)載
馬云飛 的博客地址:
http://blog.csdn.net/sw950729

正文

話不多說米愿。這次我主要介紹下okhttp如何實現(xiàn)多文件斷點下載褥伴。參考文章:
http://blog.csdn.net/KevinsCSDN/article/details/51934274

首先氮兵,在這邊闡述下我做的過程中所遇到的問題:
如何存儲url對應(yīng)的當(dāng)前長度以及總長度

如何實現(xiàn)暫停以及續(xù)傳操作

如何用一個info對象實現(xiàn)多文件的下載

response.body.contentlength與實際長度不一樣究反。(例如我獲取的長度是5.5M但他的實際長度是6.7M)

如何存儲當(dāng)前長度以及總長度
我在網(wǎng)上看到很多demo對于這塊是用 **SQLite **實現(xiàn)置逻,我覺得完全可以 Shareperference 來存儲,通過 url 來存儲對應(yīng)的 當(dāng)前長度總長度涩蜘,有人回說 Shareperference 不是只能一個建對應(yīng)一個值么,兩個怎么解決熏纯。我們可以 通過MD5加密的url來存儲當(dāng)前進(jìn)度同诫,通過MD2加密來存儲總進(jìn)度
如何實現(xiàn)暫停以及續(xù)傳操作
我們可以通過 okhttp 自帶的攔截器來實現(xiàn)其效果樟澜,具體代碼如下:


如何用一個info對象實現(xiàn)多文件的下載
其實在前面我也說了误窖。用 Shareperference 來實現(xiàn),具體怎么說的秩贰。你的url霹俺,存儲路徑每次都是需要傳的,但是為了防止進(jìn)度沖突(例:明明的A的進(jìn)度毒费,下載B的時候卻用的A的進(jìn)度)丙唧。所以通過傳入的url來用 Shareperference 得到他存儲的 當(dāng)前長度 與 總長度 來解決。
response.body.contentlength 與實際長度不一樣觅玻。
其實想际。。溪厘。我也不知道沼琉。。百度了好久桩匪。得到的答案是在HTTP協(xié)議中打瘪,消息實體長度和消息實體的傳輸長度是有區(qū)別,比如說gzip壓縮下傻昙,消息實體長度是壓縮前的長度闺骚,消息實體的傳輸長度是gzip壓縮后的長度。還有種說法還有種說法是服務(wù)器限制問題妆档。不解僻爽。總之會導(dǎo)致獲取進(jìn)度的時候贾惦,進(jìn)度值是大于100的胸梆。。须板。
大致的問題和解決方法已經(jīng)說明了碰镜。首先,我們先來看下效果圖习瑰。

最后上源碼绪颖,相信你看懂了上面的思路。對于源碼的理解就不是很難了:






關(guān)于 httpdownloadbean:



就是這幾個數(shù)據(jù)甜奄,通過 set 和 get 來設(shè)置和獲取柠横。
ShareperferenceUtils 是關(guān)于 Shareperference 的工具類窃款。filesupport 是用來創(chuàng)建文件的。byteutils 可以不必理會牍氛。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晨继,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子搬俊,更是在濱河造成了極大的恐慌紊扬,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悠抹,死亡現(xiàn)場離奇詭異,居然都是意外死亡扩淀,警方通過查閱死者的電腦和手機(jī)楔敌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驻谆,“玉大人卵凑,你說我怎么就攤上這事∈る” “怎么了勺卢?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長象对。 經(jīng)常有香客問我黑忱,道長,這世上最難降的妖魔是什么勒魔? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任甫煞,我火速辦了婚禮,結(jié)果婚禮上冠绢,老公的妹妹穿的比我還像新娘抚吠。我一直安慰自己,他們只是感情好弟胀,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布楷力。 她就那樣靜靜地躺著,像睡著了一般孵户。 火紅的嫁衣襯著肌膚如雪萧朝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天夏哭,我揣著相機(jī)與錄音剪勿,去河邊找鬼。 笑死方庭,一個胖子當(dāng)著我的面吹牛厕吉,可吹牛的內(nèi)容都是我干的酱固。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼头朱,長吁一口氣:“原來是場噩夢啊……” “哼运悲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起项钮,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤班眯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后烁巫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體署隘,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年亚隙,在試婚紗的時候發(fā)現(xiàn)自己被綠了磁餐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡阿弃,死狀恐怖诊霹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渣淳,我是刑警寧澤脾还,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站入愧,受9級特大地震影響鄙漏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棺蛛,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一泥张、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞠值,春花似錦媚创、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至声离,卻和暖如春芒炼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背术徊。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工本刽, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓子寓,卻偏偏與公主長得像暗挑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斜友,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

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