微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Unirest下载大文件时支持用户请求的取消

如何解决使用Unirest下载大文件时支持用户请求的取消

我正在尝试使用Unirest下载(可能很大)文件,并且我正在努力寻找支持用户请求的下载取消的最佳实践方法(除了进度监视和错误处理之外)。

getRequest
  .downloadMonitor((__1,__2,bytesWritten,bytesTotal) -> {
    ... // signal progress (elided)
  })
  .asFile(somePath)
  .ifFailure(response -> {
     someExternalErrorHandler.reportError(response.getStatus(),response::getStatusText);
  })

似乎没有一种方法可以将用户请求的取消(例如,用户按下“取消”按钮)传达给Unirest,从而导致正在运行的传输被中止,流和文件句柄被关闭,资源被清理。等

我检查了一下,但在documentation regarding this topic中找不到任何内容

我以前曾使用asObject / asObjectAsync尝试过different approach,导致整个传输最终都在写入文件之前在主内存中结束(因此下载失败)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。