事實上蟀苛,我這樣干過庶弃,你們一做真的沒有問題贞滨?
在 CallServerInterceptor 中寻歧,是調用了 RequestBody.source.wirteTo 方法,這個方法會將我們的 body 寫進 sink 內催首,用 OkHTTP的角度來看杀餐,就寫入到 HTTP1CodeC 的 Stream 上。
站在系統(tǒng)的角度绞愚,是將用戶內存區(qū)的數(shù)據叙甸,送入內核內存區(qū),然后由 TCP 協(xié)議棧進行發(fā)送到網卡位衩。
但是裆蒸,我們即使用來包裝內,但是糖驴,從我們的 File 構建的 Body 經歷了:將 File 內容讀到 Okio.Buffer 內僚祷,然后將這個 Buff 寫到 sink,在IO效率高的機器上遂赠,進度條會瞬間到100久妆,然后等到幾秒后,才會返回跷睦。
再談Retrofit:文件的上傳下載及進度顯示前言 前面介紹了很多關于Retrofit2的基本使用筷弦,下面就單獨介紹一下如何使用Retrofit2實現(xiàn)文件上傳和文件下載,并且做了一點拓展抑诸,重點介紹了一下上傳和下載過程中進度...