下载过程中会出现 unexpected end of sream 错误,然后就暂停了

@lizixian18 根据你的错误以及错误栈,我觉得你遇到的应该是这个问题: java.net.ProtocolException: unexpected end of stream..
首先这个错误是HttpConneciton$FixedLengthSource抛出来的,原因是HttpConnection的输入流数据大小小于Response返回的content-length带回来的预期大小。
这个是该资源的后端问题,联系你的后端同学,告诉他返回的数据流大小小于response中的content-length。
非常不建议绕过,因为content-length本身代表的就是要下载的的大小,如果绕过将无法保证本地文件是否是完整的,如果非要绕过,可以通过自己定制FileDownloadConnection来绕过。
嗯,是的,这原因我也有了解到了。
原谅我来挖坟 这个问题还是没有得到解决。同一个链接有时成功有时不成功 分块的 contentlength是一致每次都一样。但是失败的时候最后一块的最后一个字节读不到。最后一块的分块的contentlength 是2704258成功的时候最后可以读到2704258不成功的时候最后只能读到 2704257
当前使用的 FileDownloader 版本:1.7.6-SNAPSHOT
也遇到这个问题了,文件是存储在阿里云的 oss 服务器。请问如何解决呢?

你好,有一样的问题,,头部添加addHeader("Connection","close")并没有解决
当前使用的 FileDownloader 版本:1.7.6-SNAPSHOT
也遇到这个问题了,文件是存储在阿里云的 oss 服务器。请问如何解决呢?
我也遇到了这个问题,我也是用的FileDownloader1.7.6,只有两个文件会出现这个问题,别的都正常,请问解决了吗
@lizixian18 根据你的错误以及错误栈,我觉得你遇到的应该是这个问题: java.net.ProtocolException: unexpected end of stream..
原因
首先这个错误是
HttpConneciton$FixedLengthSource抛出来的,原因是HttpConnection的输入流数据大小小于Response返回的content-length带回来的预期大小。解决方案
这个是该资源的后端问题,联系你的后端同学,告诉他返回的数据流大小小于response中的
content-length。如何绕过?
非常不建议绕过,因为
content-length本身代表的就是要下载的的大小,如果绕过将无法保证本地文件是否是完整的,如果非要绕过,可以通过自己定制FileDownloadConnection来绕过。
但问题来了,我下载一个外链apk,比如这个:http://shouji.360tpcdn.com/190218/fa1166b847c6a94c14a83f5377b382cc/com.lu.weatherforecast_410.apk 真机8.1OK,第三方模拟器6.0 OK,浏览器OK, 但原生android 8.0模拟器一直报这个问题。
补充,用as的原生模拟器 的自带chrome浏览器在 http://app.so.com/上下载的所有apk都会出现问题。这应该是360搞的鬼吧。。
already fixed it, please add "Accept-Encoding", "identity" in header , then the encoding will not be modified.
@liqian685 @zhaochengjun 同样遇到这个问题,在某些机型复现概率很高,你们有解决吗?
already fixed it, please add "Accept-Encoding", "identity" in header , then the encoding will not be modified.
这个在哪里加,客户端下载时添加?还是让服务器添加?有没有具体的案例
我在客户端加了"Accept-Encoding", "identity"不起作用
Most helpful comment
原谅我来挖坟 这个问题还是没有得到解决。同一个链接有时成功有时不成功 分块的 contentlength是一致每次都一样。但是失败的时候最后一块的最后一个字节读不到。最后一块的分块的contentlength 是2704258成功的时候最后可以读到2704258不成功的时候最后只能读到 2704257