0
我正在尋找能夠幫助我在Windows服務應用程序中不使用WebBrowser()的情況下獲取網頁加載時間的代碼。如何使用HttpWebRequest在Windows服務應用程序中獲取網頁的加載時間
我運行不同的方法,但我不太明白。
請幫我解決這個問題。
我正在尋找能夠幫助我在Windows服務應用程序中不使用WebBrowser()的情況下獲取網頁加載時間的代碼。如何使用HttpWebRequest在Windows服務應用程序中獲取網頁的加載時間
我運行不同的方法,但我不太明白。
請幫我解決這個問題。
這個功能應該做的伎倆:
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
,那麼它會創建一個Web請求到指定的URL。它下載整個頁面的源代碼(通過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())
您可以通過使用'System.Diagnostics.Stopwatch'代替'DateTime' –
@JoelCoehoorn好這一提高,但什麼是它的/改進有什麼區別? –
http://stackoverflow.com/questions/2923283/stopwatch-vs-using-system-datetime-now-for-timing-events –