以下是:官方文档、以及翻译版。
转载自 http://www.cnblogs.com/cxd4321/p/3504632.html
官网 http/1.1 : https://www.w3.org/Protocols/rfc2616/rfc2616.html
ITTF : https://www.ietf.org
最近在做项目的时候,写到下载文件的时候,文件下载正常。但是,需要根据下载的bytes来显示下载的进度。但是,通过Connection对象的getContentLength方法返回值一直是(-1),纠结了好长一段时间,期间试过各种方法,都是不行。
最后,没办法了,既然用的是http方式下载文件,就从http上面查找一下试一试。之前,对于http协议部分,只能说是了解,想到以后可能会碰到http相关的其他问题,于是下决心研读一下整个http/1.1协议[官方正式版],才找到问题所在。http/1.默认不再利用Content-Length头阈值来标示文件的长度,而是利用chunk传输方式来传输数据,Content-Length默认为(-1),这就是之前获取长度一直为(-1)的原因,虽然http/1.1(官方默认不建议使用Content-Length),但是,我们可以在服务器端,setContentLength来重新设置传输文件的大小,这样就可以解决前面遇到的问题。
Http/1.1研读
最新推荐文章于 2023-11-16 00:02:05 发布