在 java 中,如何找到一个连接为获取 URL 的所有部分而发出的请求数?
In java how to find the number of requests a connection makes to get all parts of a URL?
如果 URL 指向包含图像的页面,html、javascripts、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, 图片... ?
更重要的是,有多少请求?
除了获取所有内容之外,没有其他简单的方法可以获取此信息。您通过第一个请求获得的顶级 HTML 文档包含指向其他文档(图像、样式 sheets、Javascript、...)的链接,这些文档又可能包含更多链接(例如从样式 sheet 引用的背景图像)。这些其他资源甚至可能驻留在其他服务器上。
为了使事情变得更加复杂,页面中的 Javascript 可能会动态加载更多资源。
如果 URL 指向包含图像的页面,html、javascripts、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, 图片... ?
更重要的是,有多少请求?
除了获取所有内容之外,没有其他简单的方法可以获取此信息。您通过第一个请求获得的顶级 HTML 文档包含指向其他文档(图像、样式 sheets、Javascript、...)的链接,这些文档又可能包含更多链接(例如从样式 sheet 引用的背景图像)。这些其他资源甚至可能驻留在其他服务器上。
为了使事情变得更加复杂,页面中的 Javascript 可能会动态加载更多资源。