http urlconnection getcontentlength总返回值为-1

最近在做一个自动更新的功能,点击更新下载之后,进度条不走动。之前一直用的模拟器运行,没有发现任何问题,后来真机测试时就出现了进度条不走动的问题。经断点调试发现,当获取下载文件大小getContentLength()的时候,返回结果是-1。于是上网搜了一下HttpURLConnection及getContentLength(),发现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: whenread() returns -1.

解决办法:在http request的head中设置如下参数即可:conn.setRequestProperty(“Accept-Encoding”, “identity”);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值