【发布时间】:2011-01-18 16:30:35
【问题描述】:
没错,我开始创建一个运行良好的 Java 下载管理器的项目。我目前看到的唯一问题是当我请求 URL 的内容长度时。当我使用 HttpUrlConnection 的 getContentLength 提供的方法时,它返回一个 Int。
如果我只下载文件大小小于 2GB 的文件,那就太好了。进行更多挖掘并发现 java 不支持 unsigned int 值,但即使这样也只会给我一个最大 4GB 的文件大小。
谁能帮助我正确获取大于 2GB 的文件的内容大小。
提前致谢。
更新
感谢您回答精英绅士,我尝试了您的建议,但一直返回空值,所以我所做的是
HttpURLConnection conn = (HttpURLConnection) absoluteUrl.openConnection();
conn.connect();
long contentLength = Long.parseLong(conn.getHeaderField("Content-Length"));
出于某种原因,只使用 conn.getRequestProperty 总是为我返回 null
【问题讨论】:
-
我正在寻找
getHeaderField(...),但找不到。这实际上是最好的方法......我已经更新了我的答案。哦,是的,getRequestProperty在执行 POST/GET 请求之前使用,即它用于请求而不是响应。
标签: java download httpurlconnection