Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中获取要加载的网页的大致时间_Java - Fatal编程技术网

在Java中获取要加载的网页的大致时间

在Java中获取要加载的网页的大致时间,java,Java,在我用Java编写的程序中,我生成随机(现有)地址。对于每个地址,我想计算一些东西。 如果页面很大,我不想做这个计算,因为那样会花费很多时间 所以我想,如果我知道大概需要多少时间才能得到信息,我可以决定是否进行计算 严谨并不重要;我不在乎它是否比要求的时间多出一秒(尽管我不希望它超过5-6秒) 如果有帮助的话,我正在从维基百科生成文章 提前感谢您。如果您的意思与我认为的相同,您可以对资源执行HTTP HEAD请求。然后,Web服务器将使用标题(而不是内容)进行回复。如果它发送内容长度标题,那么您

在我用Java编写的程序中,我生成随机(现有)地址。对于每个地址,我想计算一些东西。 如果页面很大,我不想做这个计算,因为那样会花费很多时间

所以我想,如果我知道大概需要多少时间才能得到信息,我可以决定是否进行计算

严谨并不重要;我不在乎它是否比要求的时间多出一秒(尽管我不希望它超过5-6秒)

如果有帮助的话,我正在从维基百科生成文章


提前感谢您。

如果您的意思与我认为的相同,您可以对资源执行HTTP HEAD请求。然后,Web服务器将使用标题(而不是内容)进行回复。如果它发送内容长度标题,那么您就知道页面有多大。

有几种方法(如果服务器支持)。例如,使用URLconnection、Apache HttpClient

  • 对于第一个,您可以使用
    Connection.getContentLength()

  • 对于页面的第二个请求头:
    client.execute(requestHead)然后从响应中读取内容长度元素


对于任何方法来说,都不好的是,有时服务器不提供任何关于大小的信息,所以您可以得到-1

的值。谢谢您的回答。两个问题:(1)我如何做到这一点(我查了一下,没有找到)?(2) 它是否在合理的时间内运行?(1)您应该能够使用任何合适的HTTP库来运行它,我喜欢Apache的HttpClient。(2) 不一定,在一天结束时,没有办法预测Web服务器需要多长时间来响应,但一般来说,头部响应应该很快,如果页面较大或其他什么,则不应该花费更长的时间。