使用分块 http 传输时获取总文件长度
我用 Java 编写了一个程序,使用分块通过 http 下载大文件。一切工作正常,但我想添加一个进度条,除非获得文件的总长度,否则我无法做到这一点。有什么办法可以做到这一点吗?
I've written a program in Java to use chunking to download large files over http. Everything is working fine but I'd like to add a progress bar which I can't do unless I get the total length of the file. Is there any way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果服务器提供
Content-Length
标头字段,那么这很容易。如果没有,那么你就不走运了。当内容是静态的并且具有已知的大小时,合理的服务器实现提供
Content-Length
。如果内容是动态生成的,那么就不可能先验地知道长度,至少在不两次遍历数据的情况下是不可能的。If the server provides a
Content-Length
header field, then that's easy. If it doesn't, then you're out of luck.Reasonable server implementations provide
Content-Length
when the content is static and has a known size. If the content is dynamically generated, then it's impossible to know the length a priori, at least without making two passes through the data.