狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統之家 > 技術開發教程 > 詳細頁面

用VB完成頁面下載跟蹤程序

用VB完成頁面下載跟蹤程序

更新時間:2024-04-09 文章作者:未知 信息來源:網絡 閱讀次數:

陶國強  

互聯網傳輸控件(ITC)是一個很不錯的控件,我們可以利用它非常方便地檢索Web資源,但不幸的是,該控件并沒有提供跟蹤數據傳輸過程的方法。如果ITC控件具有諸如DownloadProgress或者DataArrival這樣的事件,而且該事件還具有相應的參數就好了,但可惜也沒有。那么有沒有方法來獲取網頁下載過程的信息呢?答案是肯定的,下面就來討論一下如何獲取HTTP數據傳輸的過程信息。
通常,我們使用ITC控件提供的兩種方法來下載Web頁面,即OpenURL和Execute,其中,OpenURL方法最簡單,但其功能有限,用這種方法并不能得到任何過程信息。為了用OpenURL方法獲取Web頁面內容,我們可以使用下面的代碼:
strPageContent = Inet1.OpenURL(strURL, icString)
可見,用OpenURL方法下載頁面確實很簡單,但我們不能對到達的數據進行控制,所以,我們需要訪問Winsock緩沖區,該緩沖區的功能是存儲到達的數據。如果我們能夠訪問緩沖區內的數據,那么我們就能在傳輸過程中的任何時刻計算出已到達數據的大小。而利用ITC控件的Execute方法,情況就完全不同了,下面我們來看一下該方法是如何工作的:
'Execute方法只是向Web服務器發送HTTP請求,而本身并不接收任何數據
Inet1.Execute strURL, "GET"
為了檢索已達到數據,我們需要使用GetChunk方法將緩沖區數據讀到VB變量中。
strBuffer = Inet1.GetChunk(512)
strArrivedData = strArrivedData & strBuffer
可見,GetChnuk方法具有Size參數,允許我們自定義從緩沖區內讀出數據塊的大小。因此,我們找到了控制到達數據的方法,而且我們可以在下載過程中實現對已到達數據的控制。在StateChanged事件中加入如下代碼:
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
Case icResponseCompleted
Do
DoEvents
strBuffer = Inet1.GetChunk(512)
strArrivedData = strArrivedData & strBuffer
lngArrivedDataSize = Len(strArrivedData)
Loop Until Len(strBuffer) = 0
End Select
End Sub
OK!現在我們就能夠顯示已到達數據的大小了。但是如何獲得下載數量的百分比值,然后通過進度條來顯示下載過程呢?首先,我們需要在任何數據到達之前知道頁面文件的大小。根據HTTP規范,Web服務器需要發送內容長度報頭(Content-Length header field)作為HTTP請求的響應,通過這個值我們就可以知道頁面文件的大小。我們可以在StateChanged事件中調用ITC控件的GetHeader方法來獲取這個值,如下所示:
'This module level variable stores size of the file we are downloading from the web
Private m_lngDocSize As Long
Private Sub Inet1_StateChanged(ByVal State As Integer)
Select Case State
Case icResponseReceived
If m_lDocSize = 0 Then
If Len(Inet1.GetHeader("Content-Length")) > 0 Then
m_lDocSize = CLng(Inet1.GetHeader("Content-Length"))
End If
End If
End Select
End Sub
然而,在某些情況下,Web服務器并不發送內容長度報頭,我們也就不能知道頁面文件大小,也就不能顯示進度信息了。
現在,我們來創建一個簡單的應用程序來實現我們的目標。
創建工程
啟動VB集成開發環境,創建一個標準Windows應用工程,將該工程命名為DownloadProgress,在Project菜單中打開Componets對話框(或按快捷鍵Ctrl+T激活),然后選中下列控件:
• Microsoft Internet Transfer Control  
• Microsoft Rich Textbox Control  
• Microsoft Windows Common Controls  
選擇保存目錄,然后保存該工程。
創建圖形用戶界面
在窗體上放置下列控件:
• TextBox  
• CommandButton  
• 兩個Frame控件
• Label
• ProgressBar  
• RichTextBox  
• Internet Transfer Control  
如下圖所示,在窗體上對以上控件進行布置。


編寫應用程序代碼
打開窗體的代碼編輯器,在全局變量聲明部分(General-Declarations)部分進行如下變量聲明。
Private m_lngDocSize As Long
這個變量將用來存儲我們將要下載的頁面大小。
下面,我們將對命令按鈕進行編碼,在Command1_Click 事件中加入如下代碼:
Private Sub Command1_Click()
'文件大小值復位
m_lngDocSize = 0
'清空rtbDocument的文本
rtbDocument.Text = ""
'復位進度條控件
ProgressBar1.Value = 0.001
'顯示進度的標簽內容設為空
lblProgressInfo.Caption = ""
'定義ITC控件使用的協議為HTTP協議
Inet1.Protocol = icHTTP
'調用Execute方法向Web服務器發送HTTP請求
If Len(txtURL.Text) > 0 Then
Inet1.Execute Trim$(txtURL.Text), "GET"
End If
End Sub
在命令按鈕中,我們對各個控件的初值進行了復位,并向Web服務器發送了HTTP請求,該URL地址由用戶鍵入到文本框中。在服務器開始響應時,我們需要處理ITC控件的StateChanged事件,從而獲得內容長度報頭,并獲取隨后傳送過來的頁面過程信息。
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim strText As String
Dim strBuffer As String
Dim sngProgerssValue As Single
On Error Resume Next
Select Case State
Case icResponseCompleted
Do '從緩沖區讀取數據
DoEvents
strBuffer = Inet1.GetChunk(512)
strText = strText & strBuffer
If m_lngDocSize > 0 Then
If Len(strBuffer) > 0 Then
'獲得進度百分比值
sngProgerssValue = Int((Len(strText) / m_lngDocSize) * 100)
End If
'更新進度標簽顯示內容
lblProgressInfo.Caption = "Downloaded " & CStr(Len(strText)) & _
" bytes (" & CStr(sngProgerssValue) & "%)"
'用新值更新進度條控件
ProgressBar1.Value = sngProgerssValue
End If
Loop Until Len(strBuffer) = 0
'將讀取的HTML頁面內容置入RichTextBox控件
rtbDocument.Text = strText
Case icResponseReceived
If m_lngDocSize = 0 Then
'讀取頁面文件大小
If Len(Inet1.GetHeader("Content-Length")) > 0 Then
m_lngDocSize = CLng(Inet1.GetHeader("Content-Length"))
End If
End If
End Select
End Sub
一切OK!按F5測試這個新完成的應用程序,在文本框內鍵入任意存在的URL地址,然后點擊讀取按鈕,呵呵,成功了!(如果服務器發送了內容長度報頭,我們就能看到結果,如果不發送,這個程序可就罷工了。)
下載源文件  http://www.ccw.com.cn/htm/app/down/020329.zip

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
国产中文一区二区三区| 日韩成人伦理电影在线观看| 精东粉嫩av免费一区二区三区| 欧美日韩国产不卡在线看| 欧美肥大bbwbbw高潮| 天堂精品中文字幕在线| 亚洲欧洲精品一区二区| 久久久精品综合| 国产精品69久久久久水密桃| 日本精品裸体写真集在线观看| 亚洲人成亚洲人成在线观看图片| 白白色亚洲国产精品| 欧美高清hd18日本| 九九视频精品免费| 欧洲精品一区二区三区在线观看| 亚洲国产精品综合小说图片区| 亚洲欧洲日本一区二区三区| 久久久91精品国产一区二区精品| 国产成人免费视频| 欧美性猛交xxxx黑人交| 天天射综合影视| 一区二区三区四区五区精品视频| 久久久综合九色合综国产精品| 国产一区二区不卡老阿姨| 欧美激情1区| 国产亚洲精品资源在线26u| 国产一区二区免费在线| 91精品国产综合久久香蕉的特点| 男女性色大片免费观看一区二区| 久久精品国产清高在天天线 | 一区二区三区中文在线| 国内精品亚洲| 久久夜色精品一区| 欧美在线看片| 久久久精品国产免大香伊| 成人高清免费观看| 欧美一区二区三区小说| av资源站一区| 久久蜜桃香蕉精品一区二区三区| 女生裸体视频一区二区三区| 26uuu久久天堂性欧美| 你懂的视频一区二区| 久久免费视频一区| 黄色免费成人| 亚洲三级在线看| 麻豆精品91| 青青草97国产精品免费观看无弹窗版| 欧美三级韩国三级日本一级| 蜜桃视频第一区免费观看| 欧美午夜免费| 亚洲香蕉伊在人在线观| 久久婷婷人人澡人人喊人人爽| 日本不卡一二三| 欧美日韩黄色影视| 91香蕉视频mp4| 国产精品久久久久久久久免费樱桃| 99精品欧美一区二区三区| 一区二区三区中文在线观看| 欧美性生活久久| 国产乱子伦视频一区二区三区| 国产欧美日本一区视频| 韩日视频一区| 婷婷丁香久久五月婷婷| 7777精品伊人久久久大香线蕉完整版 | 久久伊人一区二区| 成人黄色大片在线观看| 国产日产亚洲精品系列| 久久精品一区二区国产| 日本丰满少妇一区二区三区| 青青草成人在线观看| 国产日韩欧美激情| 99精品国产在热久久| 福利电影一区二区三区| 国产精品午夜久久| 欧美性色黄大片手机版| 丁香婷婷综合色啪| 亚洲国产美国国产综合一区二区| 欧美亚洲高清一区| 欧美日韩精品伦理作品在线免费观看 | 一区二区国产精品| 亚洲国产成人porn| 久久久精品国产免大香伊| 亚洲少妇在线| av网站一区二区三区| 亚洲美女偷拍久久| 日韩免费观看高清完整版| 国产自产在线视频一区| 国产在线一区二区| 国产精品麻豆一区二区| 亚洲小说欧美另类婷婷| 麻豆国产精品777777在线| 中文字幕成人网| 一本一道波多野结衣一区二区 | 日韩三级精品电影久久久| 黄色欧美成人| 成人av小说网| 亚洲成人免费影院| 国产女人18水真多18精品一级做 | aa亚洲婷婷| 99v久久综合狠狠综合久久| 一区免费观看视频| 欧美精品欧美精品系列| 99热精品在线观看| 久热成人在线视频| 亚洲午夜羞羞片| 精品91自产拍在线观看一区| 欧美日韩久久久一区| 国内一区二区三区在线视频| 国产成人自拍网| 亚洲成a人v欧美综合天堂下载| 中文一区二区完整视频在线观看 | 亚洲三级国产| 国产精品中文字幕日韩精品| 天堂成人免费av电影一区| 国产免费成人在线视频| 欧美一级生活片| 久久亚洲国产精品日日av夜夜| 激情欧美日韩一区| 成人黄色小视频| 国产成人精品www牛牛影视| 日韩精品久久久久久| 一区二区三区中文字幕精品精品| 久久久亚洲午夜电影| 午夜亚洲性色福利视频| 黄色av成人| 成人免费视频视频| 美女www一区二区| 亚洲一区二区三区四区在线免费观看| 久久婷婷国产综合国色天香| 欧美日韩一区精品| 午夜影院日韩| 噜噜噜躁狠狠躁狠狠精品视频| 国产尤物精品| 禁久久精品乱码| 欧美黄在线观看| 欧美日本在线| 99久久久无码国产精品| 国产成人免费av在线| 另类综合日韩欧美亚洲| 免费xxxx性欧美18vr| 亚洲成av人片一区二区梦乃| 午夜在线电影亚洲一区| 亚洲欧美日韩国产手机在线| 亚洲精品成人精品456| 中文字幕一区二区三区四区不卡 | 在线看一区二区| 乱人伦精品视频在线观看| 久久久久国产精品午夜一区| 国产欧美高清| 美女爽到呻吟久久久久| 久久久久国产精品午夜一区| 欧洲精品一区二区三区在线观看| 久久国产精品久久久久久电车| 久久人人精品| 色94色欧美sute亚洲线路一久| 欧美综合一区二区| 欧美揉bbbbb揉bbbbb| 欧美日韩精品欧美日韩精品一综合| 久久久青草婷婷精品综合日韩| 欧美在线观看视频一区二区| 色婷婷精品久久二区二区蜜臀av| 欧美三级电影在线观看| 欧美美女视频在线观看| 精品久久一区二区| 久久美女高清视频| 亚洲人成网站精品片在线观看| 国产精品国产自产拍高清av| 玉足女爽爽91| 日韩精品一二区| 成人小视频免费观看| av在线不卡免费看| 日韩一区二区久久| 国产精品入口66mio| 欧美色图一区二区三区| 宅男在线国产精品| 日本一二三不卡| 亚洲蜜臀av乱码久久精品| 久久国产精品72免费观看| 午夜精品久久久久久久99水蜜桃 | 亚洲综合区在线| 日本视频一区二区三区| 国产精品一区二区你懂的| 国产suv精品一区二区883| 99久久国产综合精品女不卡| 国产精品成人观看视频免费| 久久精品导航| 777午夜精品视频在线播放| 国产精品三级av| 亚洲欧美日韩一区二区三区在线观看| 日本怡春院一区二区| 日本va欧美va精品发布| 成人精品鲁一区一区二区| 亚洲经典三级| 欧美日韩精品专区| 成人免费在线观看入口| 日本中文字幕不卡| 欧美日本亚洲| 色婷婷综合久久久| 中文一区二区在线观看| 五月综合激情婷婷六月色窝|