广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州OkHttps如何下载进度监听?_北大青鸟IT学校

作者:邓华发布时间:2021-06-14分类:Java技术浏览:827


导读:OkHttps如何下载进度监听?相信学过Java的同学都遇到过这个问题,那么答案是什么呢?接下来一起来看看惠州北大青鸟老师是怎么回答的。

OkHttps如何下载进度监听?相信学过Java的同学都遇到过这个问题,那么答案是什么呢?接下来一起来看看惠州北大青鸟老师是怎么回答的。

  就直接上代码啦,诸君一看便懂:

  1. http.sync("/download/test.zip")

  2.         .get()

  3.         .getBody()

  4.         .setStepBytes(1024)   // 设置每接收 1024 个字节执行一次进度回调(不设置默认为 8192)  

  5.  //     .setStepRate(0.01)    // 设置每接收 1% 执行一次进度回调(不设置以 StepBytes 为准)  

  6.         .setOnProcess((Process process) -> {           // 下载进度回调

  7.             long doneBytes = process.getDoneBytes();   // 已下载字节数

  8.             long totalBytes = process.getTotalBytes(); // 总共的字节数

  9.             double rate = process.getRate();           // 已下载的比例

  10.             boolean isDone = process.isDone();         // 是否下载完成

  11.         })

  12.         .toFolder("D:/download/")        // 指定下载的目录,文件名将根据下载信息自动生成

  13.  //     .toFile("D:/download/test.zip")  // 指定下载的路径,若文件已存在则覆盖

  14.         .setOnSuccess((File file) -> {   // 下载成功回调

  15.             


  16.         })

  17.         .start();

  值得一提的是:由于 OkHttps 并没有把下载做的很特别,这里设置的进度回调不只对下载文件起用作,即使对响应JSON的常规请求,只要设置了进度回调,它也会告诉你报文接收的进度(提前是服务器响应的报文有Content-Length头),例如:

  1. List<User> users = http.sync("/users")

  2.         .get()

  3.         .getBody()

  4.         .setStepBytes(2)

  5.         .setOnProcess((Process process) -> {

  6.             System.out.println(process.getRate());

  7.         })

  8.         .toList(User.class);

想了解更多关于Java的资讯吗?可以来惠州北大青鸟新方舟校区了解一下。

java6.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表