我正在尝试使用 Android 从 URL 中查找文件大小,但我得到 getContentLength():-1,但如果我将在任何浏览器中打开 url,则浏览器可以计算文件大小,因为浏览器也是客户端应用程序。
我的代码:
try {
URL url = new URL("https://www.dropbox.com/s/mk75lhvi96gkc00/match.flv?dl=0");
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
// expect HTTP 200 OK, so we don't mistakenly save error report
// instead of the file
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
return "Server returned HTTP " + connection.getResponseCode()
+ " " + connection.getResponseMessage();
}
// this will be useful to display download percentage
// might be -1: server did not report the length
int fileLength = connection.getContentLength();
//fileLength : -1;
} catch (Exception e) {
return e.toString();
} finally {
try {
if (output != null)
output.close();
if (input != null)
input.close();
} catch (IOException ignored) {
}
if (connection != null)
connection.disconnect();
}
这是我上面的 android 代码,我得到 -1 作为文件长度,但相同的 URL 文件大小可以由浏览器轻松计算。
请建议我一些解决方案。