分享
 
 
 

Visual Basic .Net中实现HTTP协议(二)

王朝vb·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

二..Net FrameWork SDK中提供的实现HTTP协议的类:

在.Net FrameWork SDK中实现HTTP协议的类主要位于命名空间“System.Net”。主要的类有十七种,其名称及其功能简介具体如表02所示:

作用

FileWebRequest

提供WebRequest类的文件系统实现。

FileWebResponse

提供WebResponse类的文件系统实现。

GlobalProxySelection

包含所有HTTP请求的全局默认代理实例。

HttpVersion

定义受HttpWebRequest和HttpWebResponse类支持的HTTP 版本号。

HttpWebRequest

提供WebRequest类的HTTP特定的实现。

HttpWebResponse

提供WebResponse类的HTTP特定的实现。

NetworkCredential

为基于密码的身份验证方案提供凭据。

CredentialCache

为多个凭据提供存储。

ServicePoint

提供HTTP连接的连接治理。

WebClient

提供向URI标识的资源发送数据和从URI标识的资源接收数据的公共方法。不能继续此类。

WebException

通过可插接协议访问网络期间出错时引发的异常。

WebHeaderCollection

包含与请求或响应关联的协议标头。

WebPermission

控制访问HTTPInternet资源的权限。

WebPermissionAttribute

指定权限以访问Internet资源。

WebProxy

包含WebRequest类的HTTP代理设置。

WebRequest

发出对统一资源标识符(URI)的请求。

WebResponse

提供来自统一资源标识符(URI)的响应。

表02:.Net FrameWork SDK中提供的用以实现HTTP协议的类

由于.Net FrameWork SDK中提供的用以实现HTTP协议的类实在太多,下面就选择一些在实现HTTP协议的客户端程序中经常使用的、以及本文下面内容中所涉及到的的类加以介绍。

1. WebRequest类:

WebRequest类是一个基类,它在.Net框架中主要用于访问Internet数据的请求/响应模型。在创建WebRequest类实例时,请注重下面二个问题:

(1).一般不采用WebRequest类提供的构造函数,而使用其的Creat方法来创建并初始化WebRequest类实例。

(2).HttpWebRequest类虽有构造函数。但使用复杂,所以并不提倡。请注重WebRequest类的Creat方法的语法,其语法如下:

public static WebRequest Create (

Uri requestUri

) ;

当以“http://”或者“https://” 开头的URI传递到上面的requestUri参数中时,Create方法返回其实虽为WebRequest实例,但此实例的实质为HttpWebRequest实例。在下面内容中WebRequest的主要作用就是为创建HttpWebRequest 实例。表03是WebRequest类中的常用属性和方法及其说明:

属性

说明

ConnectionGroupName

获取或设置请求的连接组的名称。

ContentLength

获取或设置所发送的请求数据的内容长度。

ContentType

获取或设置所发送的请求数据的内容类型。

Credentials

获取或设置用于对Internet资源请求进行身份验证的网络凭据。

Headers

获取或设置与请求关联的标头名称/值对的集合。

Method

获取或设置要在此请求中使用的协议方法。

PreAuthenticate

指示是否对请求进行预先身份验证。

Proxy

获取或设置用于访问此Internet资源的网络代理。

RequestUri

获取与请求关联的Internet资源的

Timeout

获取或设置请求超时前的时间长度。

表03:WebRequest类的常用属性及其说明

2. HttpWebRequest类:

HttpWebRequest类主要是实现上面介绍的HTTP会话中的第一、二步骤。当创建完HttpWebRequest实例后,并设定HttpWebRequest实例的“GET”属性后,HTTP请求信息中的请求行就定义完成了。定义HTTP请求信息中的请求头,并把请求信息发送出去就需要了解、把握HttpWebRequest类中的方法和属性。表04是定义HTTP请求头对应的HttpWebRequest类属性和方法,表05是HttpWebRequest类常用方法及其说明。

请求头

设置

Accept

由Accept属性设置。

Connection

由Connection属性和KeepAlive属性设置。

Content-Length

由ContentLength属性设置。

Content-Type

由ContentType属性设置。

EXPect

由Expect属性设置。

Date

由系统自动设置为当前日期。

Host

由系统自动设置为当前主机信息。

If-Modified-Since

由IfModifiedSince 属性设置。

Range

由AddRange方法设置。

Referer

由Referer属性设置。

Transfer

encoding 由TransferEncoding属性或SendChunked属性设置。

User

Agent 由UserAgent属性设置。

表04:设定HTTP请求头对应HttpWebRequest类方法或属性

方法

说明

Abort

取消对Internet资源的请求。

AddRange

向请求添加范围标头。

BeginGetRequestStream

开始对用来写入数据的Stream实例进行异步请求。

BeginGetResponse

开始对Internet资源的异步请求。

EndGetRequestStream

结束对用于写入数据的Stream实例的异步请求。

EndGetResponse

结束对Internet资源的异步请求。

GetRequestStream

获取用于写入请求数据的Stream实例。

GetResponse

返回来自Internet资源的响应。

表05:HttpWebRequest类常用属性及其说明

其中“BeginGetRequestStream”和“EndGetRequestStream”、“BeginGetResponse”和“EndGetResponse”是二对异步方法,其功能分别相当于“GetRequestStream”和“GetResponse”方法。

3. HttpWebResponse类:

HttpWebResponse类主要用以实现HTTP会话中的后面二个步骤。下面介绍的示例中的HttpWebResponse类起的主要作用获得服务器响应的数据,其中包括应答头。HttpWebResponse类虽提供了构造函数,但HttpWebResponse类实例的创建并不使用这个构造函数,这一点和HttpWebRequest类非常相似。而是通过HttpWebRequest类的“GetResponse”方法,此方法是当对指定的URI提出请求通过后,远程Internet资源返回的响应,下面是“GetResponse”方法的语法:

public override WebResponse GetResponse ( ) ;

可见,假如成功返回,则GetResponse方法返回的是包含来自Internet资源的响应的WebResponse实例。但这个返回的实例实质的类型是HttpWebResponse。在Visual Basic .Net中可以通过类型转换就可得到程序中所要使用的HttpWebResponse实例,从而为获取从WWW主机反馈的数据。表06和表07分别是HttpWebResponse类的常用属性和方法及其说明。

属性

说明

CharacterSet

获取响应的字符集。

ContentEncoding

获取用于对响应的体进行编码的方法。

ContentLength

获取请求返回的内容的长度。

ContentType

获取响应的内容类型。

Cookies

获取或设置与此请求关联的Cookie。

Headers

获取与来自服务器的响应关联的标头。

LastModified

获取最后一次修改响应内容的日期和时间。

Method

获取用于返回响应的方法。

ProtocolVersion

获取响应中使用的HTTP协议的版本。

ResponseUri

获取响应请求的Internet资源的

Server

获取发送响应的服务器的名称。

StatusCode

获取响应的状态。

StatusDescription

获取与响应一起返回的状态说明。

表06:HttpWebResponse类的常用属性及其说明

方法

说明

Close

关闭响应流。

GetResponseHeader

获取与响应一起返回的指定应答头内容。

GetResponseStream

获取用于读取来自服务器的响应的数据流。

表07:HttpWebResponse类的常用属性及其说明

以上介绍的三个类,是Visual Basic .Net编写基于HTTP协议网络应用程序所必须把握的。当然在.Net FrameWork SDK为能够更好的处理HTTP中各种问题,还提供了许多类,其中包括用以处理身份认证的类,如NetworkCredential和CredentialCache类等。这些类就不具体介绍了。下面就结合若干具体的示例来了解、把握在Visual Basic .Net使用上述类来实现HTTP协议的方法。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有