gpt4 book ai didi

java - 在Java中,可以在下载前确定网页的大小吗?

转载 作者:行者123 更新时间:2023-11-29 09:57:22 24 4
gpt4 key购买 nike

我想确定网页的大小,如果它大于一个数字(例如:5MB),我将下载或不下载。我可以知道这些信息吗?

最佳答案

您可以使用以下方法进行适当的近似:

HttpURLConnection content = (HttpURLConnection) new URL("www.example.com").openConnection();
System.out.println(content.getContentLength());

但是,这只会告诉您所请求的特定资源的长度(例如 URL 底部的 HTML)。 您还需要浏览页面中的 HTML,查看它引用的所有资源(来自其他站点的脚本、图像、视频等)并将它们全部加起来。

这将使您非常接近总大小,但即使那样您也不会得到完美的计数,因为 (a) 并非所有 URL 都会返回此信息,而您对此无权控制, (b) 根据内容的加载方式(例如通过隐藏细节的 AJAX 调用),您将无法提前知道要下载的资源的完整列表。

或者,如果 URL 没有返回结果,我认为 Giacomo 建议使用 CounterInputStream。不错的主意。您可以将上述建议与 CounterInputStream 结合起来,以记录已发送的总数,并可能在达到指定的最大总传输大小时停止传输。这样你基本上就有了一个预测的大小(比如一个网站告诉你它将是 3.3 MB),但是当你下载时你发现它实际上是 6 MB 并且还没有停止,并做出决定不再下载。

关于java - 在Java中,可以在下载前确定网页的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com