在 java 中,如何查找连接为获取 URL 的所有部分而发出的请求数?
Posted
技术标签:
【中文标题】在 java 中,如何查找连接为获取 URL 的所有部分而发出的请求数?【英文标题】:In java how to find the number of requests a connection makes to get all parts of a URL? 【发布时间】:2016-07-10 02:45:45 【问题描述】:如果 URL 指向包含图像、html、javascript、pdf 文件的页面...
如何确定获取所有这些部分的请求数?以及每个部分的大小?
我的代码如下所示:
try
url=new URL(aUrl);
connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("HEAD");
// connection.connect();
size=connection.getContentLengthLong();
Out("URL : "+aUrl);
if (size<0) Out("Could not determine file size.");
else Out("Size : " + size+" bytes");
connection.getInputStream().close();
catch (Exception e) e.printStackTrace();
它只获取 URL 中 HEAD 指定的大小,我猜这是总大小,我怎样才能确定每个部分的大小:html、javascript、图像...?
更重要的是,有多少请求?
【问题讨论】:
你能把内容打印出来吗?我认为这不会返回您请求的特定 url 上的确切文件以外的任何内容。 我不想获取内容,只是下载之前的大小。 我是说我认为该大小仅表示确切 url 处的文件。所以这不是总大小。如果您请求 .htmlsize
是该文件的大小,但它不包括任何 javascript 或图像等。
这段代码只发出一个请求并下载一个资源。不清楚你在问什么。
因此您必须 [1] 发出并计算获取页面所有部分所需的请求数量,然后 [2] 将它们的大小相加。这肯定很明显吗?
【参考方案1】:
除了获取所有信息之外,没有简单的方法可以获取此信息。您在第一个请求中获得的*** HTML 文档包含指向其他文档(图像、样式表、Javascript 等)的链接,而这些文档又可能包含更多链接(例如,从样式表中引用的背景图像)。这些其他资源甚至可能驻留在其他服务器上。
为了让事情变得更复杂,页面中的 Javascript 可能会动态加载更多资源。
【讨论】:
以上是关于在 java 中,如何查找连接为获取 URL 的所有部分而发出的请求数?的主要内容,如果未能解决你的问题,请参考以下文章