如何使用HttpWebRequest在Windows服务应用程序中获取网页的加载时间

时间:2016-01-06 02:03:18

标签: vb.net httpwebrequest

我正在寻找可以帮助我在Windows服务应用程序中不使用WebBrowser()来获取网页加载时间的代码。

我经历了不同的方法,但我不太明白。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

这个功能可以解决问题:

Public Function WebpageResponseTime(ByVal URL As String) As TimeSpan
    Dim sw As New System.Diagnostics.Stopwatch
    sw.Start()

    Dim wRequest As WebRequest = HttpWebRequest.Create(URL)
    Using httpResponse As HttpWebResponse = DirectCast(wRequest.GetResponse(), HttpWebResponse)
        If httpResponse.StatusCode = HttpStatusCode.OK Then
            sw.Stop()
            Return sw.Elapsed
        End If
    End Using
End Function

这只会考虑下载源代码。如果您想计算下载源代码和渲染页面所需的时间,您必须使用WebBrowser类。

工作原理:

该函数声明并启动一个Stopwatch,它将用于计算操作所花费的时间,然后它会创建一个指向该URL的Web请求。它下载整个页面的源代码(通过HttpWebResponse),然后检查响应的StatusCode

StatusCode.OK(HTTP状态代码200)表示请求成功,请求的信息(网页的源代码)在响应中,但我们不是要使用源代码,我们可以让Using/End Using块稍后处理响应。

最后,该功能会停止Stopwatch并返回已用时间(下载网页来源所需的时间)给您。

使用示例:

Dim PageLoadTime As TimeSpan = WebpageResponseTime("http://www.microsoft.com/")
MessageBox.Show("Response took: " & PageLoadTime.ToString())