五.Visual Basic .Net实现查看网页内容:
下面介绍的示例的功能是查看给定给定的URI对应的Web页面的内容,此功能类似IE浏览器中的“查看源文件”。其主要使用的无非也是WebRequest、HttpWebRequest和远程Web主机创建HTTP连接,然后通过WebResponse和Http WebResponse获得从Web主机返回的数据流,这些数据流就是Web主机对应的Web页面的内容。是想的具体步凑与上面大致相同,只需要修改两个地方
1. 在【名称】文本框中输入【Visual Basic .Net实现查看网页内容】。
2. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在“E:\VS.NET项目”目录中就产生了名称为“Visual Basic .Net实现查看网页内容”的文件夹,并在里面创建了名称为“Visual Basic .Net实现查看网页内容”的项目文件。
3. 界面设计如图6:
图06:设计界面
4. 在Form1.vb文件的最前面添加下列代码,下列代码在Form1.vb中导入程序中要使用的类所在的命名空间:
Imports System.Net
Imports System.IO
'程序中使用到StreamReader类
using System.Text ;
'程序中使用到Encoding类
7. 用下列代码替换Form1.vb中的Button1的Click事件对应的处理代码,下列代码功能是和指定的Web主机建立HTTP会话连接,并读取从Web主机反馈来的数据流:
PRivate Sub button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles button1.Click
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类型的转换
Dim myWebResponse As WebResponse = myHttpWebRequest.GetResponse ( )
'获得响应信息
myHttpWebResponse = CType ( myWebResponse , HttpWebResponse )
Dim myStream As Stream = myHttpWebResponse.GetResponseStream ( )
'获得从当前Internet资源返回的响应流数据
Dim srReader As StreamReader = New StreamReader ( myStream , Encoding.Default )
'利用获得的响应流和系统缺省编码来初始化StreamReader实例。
Dim sTemp As String = srReader.ReadToEnd ( )
'从响应流从读取数据
srReader.Close ( )
richTextBox1.Text = sTemp
'显示读取的数据 ( )
Catch WebExcp As WebException
MessageBox.Show ( WebExcp.Message.ToString ( ) )
Catch ex As Exception
MessageBox.Show ( ex.ToString ( ) )
End Try
End Sub
5. 至此在上述步骤都正确完成后,【Visual Basic .Net实现查看网页内容】项目的全部工作就基本完成了。此时单击快捷键F5运行程序后,单击程序中的【查看源文件】按钮就可以得到如图07所示的运行界面:
图07:运行界面
六.总结:
本文具体介绍了.Net FrameWork SDK中提供的用以实现HTTP协议时主要的类及其成员,并通过二个具体示例的实现过程介绍了在Visual Basic .Net中使用这些类实现HTTP协议的具体方法。HTTP协议是TCP/ip协议簇中的重要协议,也是平常接触最多的一种协议,本文介绍的二个示例虽然结构不是很复杂,但无论是程序的功能,还是应用的层次都应该算是最基础,最重要的,把握它们对把握用Visual Basic .Net实现更深层次上,基于HTTP协议的网络应用程序应该是很有帮助的。