W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
就直接上代碼啦,諸君一看便懂:
http.sync("/download/test.zip")
.get()
.getBody()
.setStepBytes(1024) // 設置每接收 1024 個字節(jié)執(zhí)行一次進度回調(不設置默認為 8192)
// .setStepRate(0.01) // 設置每接收 1% 執(zhí)行一次進度回調(不設置以 StepBytes 為準)
.setOnProcess((Process process) -> { // 下載進度回調
long doneBytes = process.getDoneBytes(); // 已下載字節(jié)數(shù)
long totalBytes = process.getTotalBytes(); // 總共的字節(jié)數(shù)
double rate = process.getRate(); // 已下載的比例
boolean isDone = process.isDone(); // 是否下載完成
})
.toFolder("D:/download/") // 指定下載的目錄,文件名將根據(jù)下載信息自動生成
// .toFile("D:/download/test.zip") // 指定下載的路徑,若文件已存在則覆蓋
.setOnSuccess((File file) -> { // 下載成功回調
})
.start();
值得一提的是:由于 OkHttps 并沒有把下載做的很特別,這里設置的進度回調不只對下載文件起用作,即使對響應JSON的常規(guī)請求,只要設置了進度回調,它也會告訴你報文接收的進度(提前是服務器響應的報文有Content-Length
頭),例如:
List<User> users = http.sync("/users")
.get()
.getBody()
.setStepBytes(2)
.setOnProcess((Process process) -> {
System.out.println(process.getRate());
})
.toList(User.class);
如果覺得 OkHttps 好用,就去點個 Star 吧,項目地址:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: