事實(shí)上貌夕,我這樣干過锯茄,你們一做真的沒有問題控妻?
在 CallServerInterceptor 中翅阵,是調(diào)用了 RequestBody.source.wirteTo 方法,這個(gè)方法會(huì)將我們的 body 寫進(jìn) sink 內(nèi),用 OkHTTP的角度來看,就寫入到 HTTP1CodeC 的 Stream 上。
站在系統(tǒng)的角度鸣皂,是將用戶內(nèi)存區(qū)的數(shù)據(jù)抓谴,送入內(nèi)核內(nèi)存區(qū),然后由 TCP 協(xié)議棧進(jìn)行發(fā)送到網(wǎng)卡寞缝。
但是癌压,我們即使用來包裝內(nèi),但是荆陆,從我們的 File 構(gòu)建的 Body 經(jīng)歷了:將 File 內(nèi)容讀到 Okio.Buffer 內(nèi)滩届,然后將這個(gè) Buff 寫到 sink,在IO效率高的機(jī)器上被啼,進(jìn)度條會(huì)瞬間到100帜消,然后等到幾秒后,才會(huì)返回浓体。
再談Retrofit:文件的上傳下載及進(jìn)度顯示前言 前面介紹了很多關(guān)于Retrofit2的基本使用泡挺,下面就單獨(dú)介紹一下如何使用Retrofit2實(shí)現(xiàn)文件上傳和文件下載,并且做了一點(diǎn)拓展命浴,重點(diǎn)介紹了一下上傳和下載過程中進(jìn)度...