0

我有一个 hybrib 应用程序,其中一个简单的 php 页面将打开其中包含一些文件链接的内容,并且从我的 android 包装器中,我已经实现了文件的下载功能。

因此,为了方便用户,我在下载文件时显示了下载的长度和进度,因为我的应用程序服务器设置了一个内容长度标头来传递设备上的大小,但我面临的问题令人惊讶。文件长度在 Android 2.2 中运行良好。我得到了正确的内容标题,但在上面的 Android 2.3 中,我得到了较小文件的内容长度,但对于较大的文件,我什至没有得到标题字段。

con.getHeaderField("content-length");

在 Android 2.3 以上的情况下返回我 null 。

那么 2.3 以上的用户代理是否有大小限制,因为如果它在 2.2 中工作正常,则意味着服务器端没有问题,只有设备用户代理有问题。

更新

我已经尝试过使用不同大小的文件,并且在 Android 2.3 以上版本中它也可以正常工作,直到 60KB。

4

1 回答 1

0

听起来客户端可能正在分块文件。检查是否存在以下标头:

Transfer-Encoding: chunked

如果存在,则请求被分块,您将不会获得 Content-Length 标头。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Chunked_transfer_encoding 。

于 2013-01-16T19:17:43.547 回答