項目經驗,如需轉載,請註明做者:Yuloran (t.cn/EGU6c76)服務器
這個 bug 本不該該定位這麼久,只是最近狀態實在是太差了,不管是心理上仍是身體上,都感受很是的疲憊。框架
使用 RxDownload2
下載文件時,要等好久(平均6s以上),纔開始刷新進度。post
從理論上看,使用 @Streaming
的方式下載文件,在與服務器創建鏈接後應當當即返回,只有從輸入流開始讀數據時纔會阻塞。可是,如今下載進度刷新須要等待這麼久,看起來像是已經下完了纔開始刷新。從 okhttp
的日誌看,這段時間確實是發起 GET請求
到 End Http
的時間,那麼這期間確定出了什麼問題。okhttp
框架應該不會有問題,那隻能是咱們的攔截器有問題,若是攔截器中調用了讀取數據的方法,就會致使阻塞。日誌
嗯,加解密攔截器、日誌攔截器中都調用了 response.body() 方法,因此致使了阻塞。code
分析業務,下載文件時無需對報文進行加解密,因此刪掉便可。同時重寫一個針對下載的日誌攔截器,不調用 response.body() 方法,就解決了。cdn
哈哈,定位這個問題哪有上面說的這麼簡單,項目緣由就很少說了。blog
RxDownload2 系列文章:get