java - getContentLength() 仅在 WiFi 中返回 -1?

标签 java android apache

我想知道文件的长度,所以我尝试了 getContentLength()。它在网络连接(edge/3g)下工作正常,但在 WiFi 下返回 -1?
为什么? WiFi 正常,找到文件,可以下载,但 getContentLength() 的返回值始终为“-1”。我不明白。 file 是一个 google 文档文件。
还有其他方法可以获取长度吗?

我的代码是:

URL url = new URL(file);

URLConnection conexion = url.openConnection();

conexion.connect();

int poids = conexion.getContentLength();

最佳答案

很可能是移动网络为您改变了一切。例如,我使用的移动网络会自动(而且很烦人)缩小图像下载量。如果网络在给你任何数据之前“透明地”执行完整下载,它可以为你填充内容长度。

但是,您基本上不应该依赖于内容长度...没有任何东西可以保证它对您可用。

关于java - getContentLength() 仅在 WiFi 中返回 -1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3418106/

相关文章:

android - Proguard 在 Intellij Idea 中是如何工作的?

regex - 如何解析 Apache Catalina.log

php - Pspell 不起作用

php - 脚本在实时服务器上运行良好但在 wamp 上运行不正常

java - 如何集成Spark和Kafka做直播

java - 获取 "junit.framework.AssertionFailedError: Forked Java VM exited abnormally"异常

android - FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 排除整个应用程序,而不仅仅是 Activity

java - SearchView 语音监听器

java - Neo4j Server 无法启动嵌入式数据库

Java:如何初始化 String[]?