您的位置:首页 > 其它

getContentLength()为-1 解决方法

2014-05-09 17:39 585 查看
最近在做一个下载平台,用到多线程下载和断点续传功能,当我获取文件大小getContentLength()的时候,返回结果是-1。文件下载是没问题的,但是大小却不正常,用模拟器获取getContentLength()是正常的,但是真机却返回-1了,模拟器是低版本运行,于是我就猜想是版本问题,果然2.2版本以上HttpURLConnection跟服务交互采用了"gzip"压缩:参考api:By default, this implementation of
HttpURLConnection
requests
that servers use gzip compression. Since
getContentLength()
returns the number
of bytes transmitted, you cannot use that method to predict how many bytes can be read from
getInputStream()
.
Instead, read that stream until it is exhausted: when
read()
returns -1.
取消办法这http request的head中设置如下参数即可:connection.setRequestProperty("Accept-Encoding", "identity");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: