正在android下写一个多线程下载类,发现当文件很小(几kb大小)时,该代码工作良好。当下载的文件比较大(如几百kb)时,下载到的文件大小全部为0。
在后台打印中查看到,文件比较小时,一般可以正确拿到http的content-length,当文件比较大时,content-length全部为-1,多线程下载自然无法正确计算出分块的大小,导致无法下载。
很显然,这是服务器端的问题,没有提供正确的content-length。查看服务器代码,果然如此。
在服务器提供下载服务的servlet代码中增加Response.setContentLength(),问题解决。
本文介绍了一种多线程下载技术在Android平台的应用,针对大文件下载时出现的问题进行了详细分析。当文件较大时,由于服务器未能提供准确的content-length值,导致多线程下载失败。通过在服务器端修改代码,增加Response.setContentLength()方法,解决了这一问题。
856

被折叠的 条评论
为什么被折叠?



