HttpURLConnection.getContentLength()返回-1的坑解决方法

  • A+
所属分类:Android异常

今天发现一个问题就是我的在线更新进度为何不走了,前几天还好好的,是谁对它做了什么(当时就怀疑同事),最后我决定debug一把,一步一步的走,走到了http的getContentLength方法,什么情况怎么是-1?以前不是有值的吗,机智的我肯定知道后台又改了什么了,我立马发了消息给后台,果然不出我所料,后台升级了在线升级的接口,后台也不知道什么原因,这时只有靠我们的google大神了,我找了一下,发现了好多文章,有很多说只要加上

conn .setRequestProperty(“Accept-Encoding”, “identity”);

这段代码就好了,但是在我的这种情况中加上貌似依旧没有反应,最后我抓了一下包,发现服务端在返回http协议的header是未加上content-length属性,所以自然是取不到长度。后来和服务端商量了一下才解决掉这个问题。前后花了差不多一小时才解决。

遇到的坑在这里记录一下,以后涨姿势了。如果觉得帮助到你,请给我一朵小红花,给个赞。

avatar