在Java中获取要加载的网页的大致时间
在我用Java编写的程序中,我生成随机(现有)地址。对于每个地址,我想计算一些东西。 如果页面很大,我不想做这个计算,因为那样会花费很多时间 所以我想,如果我知道大概需要多少时间才能得到信息,我可以决定是否进行计算 严谨并不重要;我不在乎它是否比要求的时间多出一秒(尽管我不希望它超过5-6秒) 如果有帮助的话,我正在从维基百科生成文章在Java中获取要加载的网页的大致时间,java,Java,在我用Java编写的程序中,我生成随机(现有)地址。对于每个地址,我想计算一些东西。 如果页面很大,我不想做这个计算,因为那样会花费很多时间 所以我想,如果我知道大概需要多少时间才能得到信息,我可以决定是否进行计算 严谨并不重要;我不在乎它是否比要求的时间多出一秒(尽管我不希望它超过5-6秒) 如果有帮助的话,我正在从维基百科生成文章 提前感谢您。如果您的意思与我认为的相同,您可以对资源执行HTTP HEAD请求。然后,Web服务器将使用标题(而不是内容)进行回复。如果它发送内容长度标题,那么您
提前感谢您。如果您的意思与我认为的相同,您可以对资源执行HTTP HEAD请求。然后,Web服务器将使用标题(而不是内容)进行回复。如果它发送内容长度标题,那么您就知道页面有多大。有几种方法(如果服务器支持)。例如,使用URLconnection、Apache HttpClient
- 对于第一个,您可以使用
Connection.getContentLength()代码>
- 对于页面的第二个请求头:
client.execute(requestHead)代码>然后从响应中读取内容长度元素
对于任何方法来说,都不好的是,有时服务器不提供任何关于大小的信息,所以您可以得到-1的值。谢谢您的回答。两个问题:(1)我如何做到这一点(我查了一下,没有找到)?(2) 它是否在合理的时间内运行?(1)您应该能够使用任何合适的HTTP库来运行它,我喜欢Apache的HttpClient。(2) 不一定,在一天结束时,没有办法预测Web服务器需要多长时间来响应,但一般来说,头部响应应该很快,如果页面较大或其他什么,则不应该花费更长的时间。