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 类将引发 WebException。Status 属性是 WebExceptionStatus 值之一,它指示错误源。当 Status 为 WebExceptionStatus.ProtocolError 时,Response 属性包含从 Internet 资源接收的 WebResponse。
因为 WebRequest 类是一个 abstract 类,所以 WebRequest 实例在运行时的实际行为由 Create 方法所返回的子类确定。
当从 WebRequest 继承时,必须重写下列成员:Method、RequestUri、Headers、ContentLength、ContentType、Credentials、PreAuthenticate、GetRequestStream、BeginGetRequestStream、EndGetRequestStream、GetResponse、BeginGetResponse 和 EndGetResponse。此外,必须提供 IWebRequestCreate 接口的实现,该接口定义了调用 Create 时使用的 Create 方法。
转载于:https://blog.51cto.com/zhuizhu779/1389266