三.本文程序設計、調試和運行的環境:
(1).微軟公司視窗2000服務器版。
(2).Visual Studio .Net正式版,.Net FrameWork SDK版本號3705。
四.Visual Basic .Net實現HTTP會話的請求頭并獲取應答頭:
下面示例可以自定義HTTP會話中的請求頭中各單位的數據,并獲取從WWW主機返回的應答頭,并從中提取重要的屬性對應的數據,具體的實現方法請參閱下面的實現步驟,以下就是用Visual Basic .Net實現HTTP會話的請求頭并獲取應答頭項目的具體實現步驟:
1. 啟動Visual Studio .Net。
2. 選擇菜單【文件】【新建】【項目】后,彈出【新建項目】對話框。
3. 將【項目類型】設置為【Visual Basic項目】。
4. 將【模板】設置為【Windows應用程序】。
5. 在【名稱】文本框中輸入【Visual Basic .Net中實現HTTP協議】。
6. 在【位置】的文本框中輸入【E:/VS.NET項目】,然后單擊【確定】按鈕,這樣在“E:/VS.NET項目”目錄中就產生了名稱為“Visual Basic .Net中實現HTTP協議”的文件夾,并在里面創建了名稱為“Visual Basic .Net中實現HTTP協議”的項目文件。具體如圖02所示
圖02:【新建項目】對話框
7. 把Visual Studio .Net的當前窗口切換到【Form1.vb(設計)】窗口,并從【工具箱】中的【Windows窗體組件】選項卡中往Form1窗體中拖入下列組件,并如圖3那樣排列和修改相應屬性:
圖03:設計界面
一個Button組件,其功能也是向Web主機發送定制的GET命令,并獲得從Web主機反饋來的應答頭。并在這個Button組件拖入Form1的設計窗體后,雙擊它,則系統會在Form1.vb文件分別產生這個組件的Click事件對應的處理代碼。
8. 在Form1.vb文件的最前面添加下列代碼,下列代碼在Form1.vb中導入程序中要使用的類所在的命名空間:
Imports System.Net
9. 用下列代碼替換Form1.vb中的Button1的Click事件對應的處理代碼,下列代碼功能是定制HTTP請求頭向給定的URI地址發送GET命令,并提取從WWW主機反饋的應答頭數據:
Dim myHttpWebRequest As HttpWebRequest
Dim myHttpWebResponse As HttpWebResponse
Try
Dim URL As String = textBox1.Text
Dim myUri As Uri = New Uri ( textBox1.Text )
Dim myWebRequest As WebRequest = WebRequest.Create ( URL )
'使用Creat方法創建WebRequest實例
myHttpWebRequest = CType ( myWebRequest , HttpWebRequest )
'實現WebRequest類型和HttpWebRequest類型的轉換
' 以下代碼是設定請求頭,假如請求頭
' 沒有設置則采用系統缺省的設置
myHttpWebRequest.KeepAlive = True
'設定此HTTP連接是否是永久連接
myHttpWebRequest.Timeout = 300000
'設定此HTTP連接的超時時限,請注重這里的單位是毫秒
myHttpWebRequest.Method = "GET"
'設定請求命令類型
' 以下代碼是發送請求信息,并從獲得的響應信息中
' 提起應答頭中各屬性數據
Dim myWebResponse As WebResponse = myHttpWebRequest.GetResponse ( )
'獲得響應信息
myHttpWebResponse = CType ( myWebResponse , HttpWebResponse )
'實現從WebResponse類型到HttpWebResponse類型轉換
' 以下代碼是從響應信息中提起應答頭
textBox2.Text = myHttpWebResponse.ContentType.ToString ( )
'獲得“內容類型”應答頭
textBox3.Text = myHttpWebResponse.ContentLength.ToString ( )
'獲得“內容長度”應答頭
textBox4.Text = myHttpWebResponse.Method.ToString ( )
'獲得“方法”應答頭
Dim iStatCode As Integer = CInt ( myHttpWebResponse.StatusCode )
'獲得“狀態碼”應答頭
textBox5.Text = iStatCode.ToString ( )
textBox6.Text = myHttpWebResponse.PRotocolVersion.ToString ( )
'獲得“協議版本”應答頭
textBox7.Text = myHttpWebResponse.Server.ToString ( )
'獲得“服務器”應答頭
textBox8.Text = myHttpWebResponse.Headers.ToString ( )
'顯示從Internet資源返回的所有應答信息
Catch WebExcp As WebException
MessageBox.Show ( WebExcp.Message.ToString ( ) )
Catch ex As Exception
MessageBox.Show ( ex.ToString ( ) )
End Try
End Sub
10. 至此,在上述步驟都正確執行后,【Visual Basic .Net中實現HTTP協議】項目的全部工作就完成了。單擊快捷鍵F5就可以運行程序,此時單擊【GET命令】按鈕后,程序就會向指定的URI地址發送GET命令,并把從WWW主機反饋的應答頭按條目顯示出來,具體如圖04所示:
圖04:運行界面
新聞熱點
疑難解答