WebRequest类——对统一资源标识符(URI)发出请求。是一个abstract类。

1.命名空间:System.Net

2.程序集:System(在System.dll中)

3.继承层次结构:System.Object

                                    System.MarshalByRefObject

                                        System.Net.WebRequest

                                             System.IO.Packaging.PackWebRequest

                                             System.Net.FileWebRequest

                                             System.Net.FtpWebRequest

                                             System.Net.HttpWebRequest

 

1.语法:

[SerializableAttrubute]

public abstract class WebRequest:MarshakByRefObject,ISerializable

 

2.构造函数:

WebRequest():<?xml:namespace prefix="[default]" ns="http://www.w3.org/1999/xhtml">?xml:namespace>初始化 WebRequest 类的新实例。

WebRequest(SerializationInfo,StreamingContext):从SerializationInfo和StreamingContext类的指定实例初始化 WebRequest 类的新实例。

 

3.属性:

1)AuthenticationLevel:获取或设置用于此请求的身份验证和模拟的级别。

2)CachePolicy:获取或设置此请求的缓存策略。

3)ConnectionGroupName:当在子类中重写时,获取或设置请求的连接组的名字。

4)ContentType:当在子类中被重写时,获取或设置所发送的请求数据的内容类型。

5)ContentLength:当在子类中被重写时,获取或设置所发送的请求数据的内容长度。

6)Credentials:当在子类中被重写时,获取或设置用于对Internet资源请求进行身份验证的网络凭据。

7)DefaultCachePolicy:获取或设置此请求的默认缓存策略。

8)DefaultWebProxy:获取或设置全局Http代理。

9)Headers:当在子类中被重写时,获取或设置与请求关联的表头(名称/值)对的集合。

10)ImpersonationLevel:获取或设置当前请求的模拟级别。

11)Method:当在子类中被重写时,获取或设置要在此请求中使用的协议方法。

12)PreAuthenticate:当在子类中被重写时,指示是否对请求进行预身份验证。

13)Proxy:当在子类中被重写时,获取或设置用于访问此Internet资源的网络代理。

14)RequestUri:当在子类中被重写时,获取与请求关联的Internet资源的URI。

15)TimeOut:获取或设置请求超时之前的时间长度。

16)UseDefaultCredentials:当在子类中被重写时,获取或设置一个bool值,该值控制DefaultCredential是否随请求一起发送。

 

4.方法:

1)Abort:中止请求。

2)BeginGetRequestStream:当在子类中被重写时,提供GetRequestStream方法的异步版本。

3)BeginGetResponse:当在子类中被重写时,开始对Internet资源的异步请求。

4)Create(String)、Create(Uri)、CreateDefault:为指定的URI方案初始化新的WebRequest实例。

5)CreateHttp(String)、CreateHttp(Uri):为指定的URI方案初始化新的HttpWebRequest实例。

6)CreateObjRef:创建一个对象,该对象包含生成与远程对象进行通信的代理所需的全部相关信息。

7)EndGetRequestStream:当在子类中重写时,返回用于将数据写入Internet资源的Stream。

8)EndGetResponse:当资料,返回WebResponse。

9)Equals(Object):确定指定的对象是否等于当前对向。

10)Finalize:允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。

11)GetHashCode:作为默认哈希函数。

12)GetLifttimeService:检索控制此实例的生存期策略的当前生存期服务对象。

13)GetObjectData:基础结构。使用将目标对象序列化所需要的数据填充SerialzationInfo.

14)GetRequestStream:当在子类中被重写时,返回用于将数据写入Internet资源的Stream。

15)GetRequestStreamAsyn:当在子类中被重写时,将用于写入数据的Stream作为一部操作返回到Internet资源。

16)GetResponse:当在子类中被重写时,返回对Internet请求的响应。

17)GetResponseAsyn:当在子类中被重写时,将作为异步操作返回对Internet请求的响应。

18)GetSystemWebProxy:返回当前模拟用户的IE设置中配置的代理。

19)GetType:获取当前实例的Type。

20)InitializeLifeTimeService:获取控制此实例的生存期策略的生存期服务对象。

21)MemberwiseClone:创建当前Object的浅表副本。

22)MemberwiseClone(Boolean):创建当前MarshaByRefObject对象的浅表副本。

23)RegisterPrefix:为指定的URI注册WebRequest子代。

24)ToString:返回表示当前对象的字符串。

 

WebRequest 是 .NET Framework 的请求/响应模型的 abstract 基类,用于访问 Internet 数据。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据,在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。

请求从应用程序发送到某个特定的 URI,如服务器上的网页。URI 根据为应用程序注册的 WebRequest 子代列表确定要创建正确子代类。WebRequest 后代通常被注册来处理特定的协议(例如 HTTP 或 FTP),但也可能被注册来处理对特定服务器或服务器上的路径的请求。

如果在访问 Internet 资源时发生错误,则 WebRequest 类将引发 WebExceptionStatus 属性是 WebExceptionStatus 值之一,它指示错误源。当 Status 为 WebExceptionStatus.ProtocolError 时,Response 属性包含从 Internet 资源接收的 WebResponse

因为 WebRequest 类是一个 abstract 类,所以 WebRequest 实例在运行时的实际行为由 Create 方法所返回的子类确定。

 

当从 WebRequest 继承时,必须重写下列成员:MethodRequestUriHeadersContentLengthContentTypeCredentialsPreAuthenticateGetRequestStreamBeginGetRequestStreamEndGetRequestStreamGetResponseBeginGetResponse 和 EndGetResponse此外,必须提供 IWebRequestCreate 接口的实现,该接口定义了调用 Create 时使用的 Create 方法。