Android在下载文件中获取内容长度返回-1

时间:2013-09-16 11:52:40

标签: android

我有这段代码要下载一些文件,

URL url = new URL("the url");
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();

但getContentLength方法返回-1,但该文件可以在任何类型的互联网浏览器中下载。

这是关于IIS的MIME类型还是什么?

--------答案------------- 我已经向IIS添加了.map MIME类型(与zip文件“application / x-zip-compressed”相同)。这解决了这个问题。

4 个答案:

答案 0 :(得分:1)

well它返回响应头字段content-length指定的内容长度(以字节为单位),但如果未设置此字段,则返回-1。

您是否在检查您是否已确定已连接?

答案 1 :(得分:0)

检查其余的http标头,我猜这个文件是使用chunked-encoding进行流式传输的,这意味着没有可用的内容长度。

我建议打开连接的输入流并从中读取,直到它为流的末尾返回-1

答案 2 :(得分:0)

可能是因为服务器没有在响应头

中设置content-length

答案 3 :(得分:0)

我在IIS中添加了.map MIME类型(与zip文件“application / x-zip-compressed”相同)。 这解决了这个问题。