WebRequest类:

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

命名空间:                   System.Net
程序集:         System(位于 System.dll)

继承层次结构

System.Object
System.MarshalByRefObject
System.Net.WebRequest
System.IO.Packaging.PackWebRequest
System.Net.FileWebRequest
System.Net.FtpWebRequest
System.Net.HttpWebRequest

语法:

[SerializableAttribute]public abstract class WebRequest : MarshalByRefObject, 
ISerializable

构造函数


名称说明
C#学习常用类---WebRequest类_WebRequest类WebRequest()

初始化 WebRequest 类的新实例。

C#学习常用类---WebRequest类_WebRequest类_02WebRequest(SerializationInfo,StreamingContext)

WebRequestSerializationInfo 类的指定实例初始化 StreamingContext 类的新实例。

属性


名称说明
C#学习常用类---WebRequest类_WebRequest类_03AuthenticationLevel

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

C#学习常用类---WebRequest类_WebRequest类_04CachePolicy

获取或设置此请求的缓存策略。

C#学习常用类---WebRequest类_WebRequest类_04ConnectionGroupName

当在子类中重写时,获取或设置请求的连接组的名称。

C#学习常用类---WebRequest类_WebRequest类_04ContentLength

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

C#学习常用类---WebRequest类_WebRequest类_04ContentType

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

C#学习常用类---WebRequest类_WebRequest类_04CreatorInstance

已过时。            当在子类中重写时,获取从 IWebRequestCreate 类派生的工厂对象,该类用于创建为生成对指定 URI 的请求而实例化的 WebRequest

C#学习常用类---WebRequest类_WebRequest类_04Credentials

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

C#学习常用类---WebRequest类_WebRequest类_04C#学习常用类---WebRequest类_WebRequest类_11DefaultCachePolicy

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

C#学习常用类---WebRequest类_WebRequest类_04C#学习常用类---WebRequest类_WebRequest类_13DefaultWebProxy

获取或设置全局 HTTP 代理。

C#学习常用类---WebRequest类_WebRequest类_04Headers

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

C#学习常用类---WebRequest类_WebRequest类_04ImpersonationLevel

获取或设置当前请求的模拟级别。

C#学习常用类---WebRequest类_WebRequest类_04Method

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

C#学习常用类---WebRequest类_WebRequest类_04PreAuthenticate

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

C#学习常用类---WebRequest类_WebRequest类_04Proxy

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

C#学习常用类---WebRequest类_WebRequest类_04RequestUri

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

C#学习常用类---WebRequest类_WebRequest类_04Timeout

获取或设置请求超时之前的时间长度(以毫秒为单位)。

C#学习常用类---WebRequest类_WebRequest类_04UseDefaultCredentials

当在子代类中重写时,获取或设置一个 Boolean 值,该值控制 DefaultCredentials 是否随请求一起发送。

方法


名称说明
C#学习常用类---WebRequest类_WebRequest类_22Abort()

中止请求

C#学习常用类---WebRequest类_WebRequest类_23BeginGetRequestStream(AsyncCallback,Object)

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

C#学习常用类---WebRequest类_WebRequest类_23BeginGetResponse(AsyncCallback,Object)

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

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13Create(String)

为指定的 URI 方案初始化新的 WebRequest 实例。

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13Create(Uri)

为指定的 URI 方案初始化新的 WebRequest 实例。

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13CreateDefault(Uri)

为指定的 URI 方案初始化新的 WebRequest 实例。

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13CreateHttp(String)

为指定的 URI 字符串初始化新的 HttpWebRequest 实例。

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13CreateHttp(Uri)

为指定的 URI 初始化新的 HttpWebRequest 实例。

C#学习常用类---WebRequest类_WebRequest类_23CreateObjRef(Type)

创建包含生成用来与远程对象通信的代理所需的所有相关信息的对象。(继承自 MarshalByRefObject。)

C#学习常用类---WebRequest类_WebRequest类_23EndGetRequestStream(IAsyncResult)

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

C#学习常用类---WebRequest类_WebRequest类_23EndGetResponse(IAsyncResult)

当在子类中重写时,返回 WebResponse

C#学习常用类---WebRequest类_WebRequest类_23Equals(Object)

确定指定的对象是否等于当前对象。(继承自 Object。)

C#学习常用类---WebRequest类_WebRequest类_02Finalize()

在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。(继承自 Object。)

C#学习常用类---WebRequest类_WebRequest类_23GetHashCode()

作为默认哈希函数。(继承自 Object。)

C#学习常用类---WebRequest类_WebRequest类_23GetLifetimeService()

检索当前生存期的服务对象,用于控制此实例的生存期策略。(继承自 MarshalByRefObject。)

C#学习常用类---WebRequest类_WebRequest类_02GetObjectData(SerializationInfo,StreamingContext)

此 API 支持 产品 基础结构,不应从代码直接使用。      使用将目标对象序列化所需的数据填充 SerializationInfo

C#学习常用类---WebRequest类_WebRequest类_23GetRequestStream()

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

C#学习常用类---WebRequest类_WebRequest类_23GetRequestStreamAsync()

当在子类中被重写时,将用于写入数据的 Stream 作为异步操作返回到 Internet 资源。

C#学习常用类---WebRequest类_WebRequest类_23GetResponse()

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

C#学习常用类---WebRequest类_WebRequest类_23GetResponseAsync()

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

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13GetSystemWebProxy()

返回当前模拟用户的 Internet Explorer 设置中配置的代理。

C#学习常用类---WebRequest类_WebRequest类_23GetType()

获取当前实例的 Type(继承自 Object。)

C#学习常用类---WebRequest类_WebRequest类_23InitializeLifetimeService()

获取使用生存期服务对象来控制此实例的生存期策略。(继承自 MarshalByRefObject。)

C#学习常用类---WebRequest类_WebRequest类_02MemberwiseClone()

创建当前 Object 的浅表副本。(继承自 Object。)

C#学习常用类---WebRequest类_WebRequest类_02MemberwiseClone(Boolean)

创建当前的浅表副本 MarshalByRefObject 对象。(继承自 MarshalByRefObject。)

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13RegisterPortableWebRequestCreator(IWebRequestCreate)

已过时。            注册 IWebRequestCreate 对象。

C#学习常用类---WebRequest类_WebRequest类_23C#学习常用类---WebRequest类_WebRequest类_13RegisterPrefix(String,IWebRequestCreate)

为指定的 URI 注册 WebRequest 子代。

C#学习常用类---WebRequest类_WebRequest类_23ToString()

返回表示当前对象的字符串。(继承自 Object。)


显式接口实现


名称说明
C#学习常用类---WebRequest类_WebRequest类_58C#学习常用类---WebRequest类_WebRequest类_59ISerializable.GetObjectData(SerializationInfo,StreamingContext)

此 API 支持 产品 基础结构,不应从代码直接使用。      当在子代类中重写时,使用序列化 WebRequest 所需要的数据来填充 SerializationInfo 实例。


备注

 WebRequestabstract 基类,用于从 Internet 中访问数据的.NET Framework 的请求/响应模型 使用请求/响应模型的应用程序可以在应用程序的实例的工作一种协议不可知的方式从 Internet 请求数据 WebRequest 类时特定于协议的子代类执行请求的详细信息。

从特定的 URI,例如 Web 页的服务器上的应用程序发送请求。 URI 用于确定要从列表中创建的正确子代类 WebRequest 后代注册应用程序。 WebRequest 后代通常被注册来处理特定的协议,如 HTTP 或 FTP,但也可以注册来处理对特定服务器或服务器上的路径的请求。

 WebRequest 类将引发 WebException 中发生错误时访问 Internet 资源时。  Status 属性是一个 WebExceptionStatus 值,该值指示错误的来源。StatusWebExceptionStatus.ProtocolError, 、 Response 属性包含 WebResponse 收到来自 Internet 资源。

因为 WebRequest 类abstract 类的实际行为 WebRequest 实例在运行时由子代类返回 Create 方法。 默认值和异常有关的详细信息,请参阅文档对于子代类中,如 HttpWebRequestFileWebRequest

C#学习常用类---WebRequest类_WebRequest类_60说明

使用 Create 方法初始化新 WebRequest 实例。 请不要使用 WebRequest 构造函数。

如果使用普通用户的凭据运行的应用程序创建 WebRequest 对象,该应用程序不能访问证书安装在本地计算机存储区中,除非权限显式授予了用户若要这样做。

继承函数说明:

继承自 WebRequest, ,必须重写以下成员︰ Method, ,RequestUri, ,Headers, ,ContentLength, ,ContentType, ,Credentials, ,PreAuthenticate, ,GetRequestStream, ,BeginGetRequestStream, ,EndGetRequestStream, ,GetResponse, ,BeginGetResponse, ,和 EndGetResponse 此外,必须提供实现 IWebRequestCreate 接口,它定义 Create 方法在调用时使用 Create 您必须注册的类的实现 IWebRequestCreate 接口,使用 RegisterPrefix 方法或配置文件。

下面的示例演示如何创建 WebRequest 实例,并返回响应。

using System;
using System.IO;
using System.Net;
using System.Text;
namespace Examples.System.Net
{    public class WebRequestGetExample
    {        
    public static void Main ()
        {            
        // Create a request for the URL. 		
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
        // If required by the server, set the credentials.
        request.Credentials = CredentialCache.DefaultCredentials;           
        // Get the response.
            HttpWebResponse response = (HttpWebResponse)request.GetResponse ();       
        // Display the status.
            Console.WriteLine (response.StatusDescription);            
        // Get the stream containing content returned by the server.
            Stream dataStream = response.GetResponseStream ();            
         // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader (dataStream);            
         // Read the content.
            string responseFromServer = reader.ReadToEnd ();            
            // Display the content.
            Console.WriteLine (responseFromServer);            
            // Cleanup the streams and the response.
            reader.Close ();
            dataStream.Close ();
            response.Close ();
        }
    }
}

安全性

WebPermission

To access the requested URI or any URI that the request is redirected to. Associated enumeration: F:System.Net.NetworkAccess.Connect.


备注:转自https://msdn.microsoft.com/zh-cn/library/system.net.webrequest(v=vs.110).aspx