1. 程式人生 > >C# System.Net.WebRequest 類

C# System.Net.WebRequest 類

#region 程式集 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll
#endregion

using System.ComponentModel;
using System.IO;
using System.Net.Cache;
using System.Net.Security;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
using System.Security.Cryptography.X509Certificates;

namespace System.Net {
    //
    // 摘要:
    //     提供 System.Net.WebRequest 類的 HTTP 特定的實現。
    [FriendAccessAllowedAttribute]
    public class HttpWebRequest : WebRequest, ISerializable {
        //
        // 摘要:
        //     初始化 System.Net.HttpWebRequest 類的新例項。
        [EditorBrowsable(EditorBrowsableState.Never)]
        [Obsolete("This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.", true)]
        public HttpWebRequest();
        //
        // 摘要:
        //     從 System.Runtime.Serialization.SerializationInfo 和 System.Runtime.Serialization.StreamingContext
        //     類的指定例項初始化 System.Net.HttpWebRequest 類的新例項。
        //
        // 引數:
        //   serializationInfo:
        //     System.Runtime.Serialization.SerializationInfo 物件,包含序列化新 System.Net.HttpWebRequest
        //     物件所需的資訊。
        //
        //   streamingContext:
        //     System.Runtime.Serialization.StreamingContext 物件,包含與新 System.Net.HttpWebRequest
        //     物件關聯的序列化流的源和目標。
        [Obsolete("Serialization is obsoleted for this type.  http://go.microsoft.com/fwlink/?linkid=14202")]
        protected HttpWebRequest(SerializationInfo serializationInfo, StreamingContext streamingContext);

        //
        // 摘要:
        //     獲取或設定此請求的預設快取策略。
        //
        // 返回結果:
        //     一個 System.Net.Cache.HttpRequestCachePolicy,它指定當沒有其他策略適用時對此請求有效的快取策略。
        public static RequestCachePolicy DefaultCachePolicy { get; set; }
        //
        // 摘要:
        //     獲取或設定 HTTP 錯誤響應的預設最大長度。
        //
        // 返回結果:
        //     HTTP 錯誤響應的預設最大長度。
        //
        // 異常:
        //   T:System.ArgumentOutOfRangeException:
        //     該值小於 0 並且不等於 -1。
        public static int DefaultMaximumErrorResponseLength { get; set; }
        //
        // 摘要:
        //     獲取或設定 System.Net.HttpWebRequest.MaximumResponseHeadersLength 屬性的預設值。
        //
        // 返回結果:
        //     接收的響應標頭的預設最大長度,以 KB(1024 位元組)為單位。預設配置檔案將此值設定為 64 KB。
        //
        // 異常:
        //   T:System.ArgumentOutOfRangeException:
        //     該值不等於 -1 且小於 0。
        public static int DefaultMaximumResponseHeadersLength { get; set; }
        //
        // 摘要:
        //     獲取或設定 Accept HTTP 標頭的值。
        //
        // 返回結果:
        //     Accept HTTP 標頭的值。預設值為 null。
        public string Accept { get; set; }
        //
        // 摘要:
        //     獲取實際響應請求的 Internet 資源的統一資源識別符號 (URI)。
        //
        // 返回結果:
        //     System.Uri,標識實際響應請求的 Internet 資源。預設值是供 System.Net.WebRequest.Create(System.String)
        //     方法用來初始化請求的 URI。
        public Uri Address { get; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示請求是否應跟隨重定向響應。
        //
        // 返回結果:
        //     如果請求應自動跟隨 Internet 資源的重定向響應,則為 true,否則為 false。預設值為 true。
        public virtual bool AllowAutoRedirect { get; set; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否對從 Internet 資源接收的資料進行緩衝處理。
        //
        // 返回結果:
        //     true要緩衝接收到來自 Internet 資源 ;否則為false。true 允許對從 Internet 資源接收的資料進行緩衝處理,false 禁用緩衝處理。預設值為
        //     true。
        public virtual bool AllowReadStreamBuffering { get; set; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否對傳送到 Internet 資源的資料進行緩衝處理。
        //
        // 返回結果:
        //     true 允許對傳送到 Internet 資源的資料進行緩衝處理,false 禁用緩衝處理。預設值為 true。
        public virtual bool AllowWriteStreamBuffering { get; set; }
        //
        // 摘要:
        //     獲取或設定所使用的解壓縮型別。
        //
        // 返回結果:
        //     一個 T:System.Net.DecompressionMethods 物件,該物件指示所使用的解壓縮型別。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     物件的當前狀態不允許設定此屬性。
        public DecompressionMethods AutomaticDecompression { get; set; }
        //
        // 摘要:
        //     獲取或設定與此請求關聯的安全證書集合。
        //
        // 返回結果:
        //     System.Security.Cryptography.X509Certificates.X509CertificateCollection,包含與此請求關聯的安全證書。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     為 Set 操作指定的值為 null。
        public X509CertificateCollection ClientCertificates { get; set; }
        //
        // 摘要:
        //     獲取或設定 Connection HTTP 標頭的值。
        //
        // 返回結果:
        //     Connection HTTP 標頭的值。預設值為 null。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     將 System.Net.HttpWebRequest.Connection 的值設定為 Keep-alive 或 Close。
        public string Connection { get; set; }
        //
        // 摘要:
        //     獲取或設定請求的連線組的名稱。
        //
        // 返回結果:
        //     該請求的連線組的名稱。預設值為 null。
        public override string ConnectionGroupName { get; set; }
        //
        // 摘要:
        //     獲取或設定 Content-lengthHTTP 標頭。
        //
        // 返回結果:
        //     要傳送到 Internet 資源的資料的位元組數。預設值為 -1,該值指示尚未設定該屬性,並且沒有要傳送的請求資料。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     已通過呼叫 System.Net.HttpWebRequest.GetRequestStream、System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)、System.Net.HttpWebRequest.GetResponse
        //     或 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     方法啟動了該請求。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     新的 System.Net.HttpWebRequest.ContentLength 值小於 0。
        public override long ContentLength { get; set; }
        //
        // 摘要:
        //     獲取或設定 Content-type HTTP 標頭的值。
        //
        // 返回結果:
        //     Content-type HTTP 標頭的值。預設值為 null。
        public override string ContentType { get; set; }
        //
        // 摘要:
        //     獲取或設定當從 Internet 資源接收到 HTTP 100-continue 響應時呼叫的委託方法。
        //
        // 返回結果:
        //     實現回撥方法的委託,該方法在從 Internet 資源返回 HTTP Continue 響應時執行。預設值為 null。
        public HttpContinueDelegate ContinueDelegate { get; set; }
        //
        // 摘要:
        //     獲取或設定在接收到來自伺服器的 100 次連續響應之前要等待的超時(以毫秒為單位)。
        //
        // 返回結果:
        //     在接收到 100-Continue 之前要等待的超時(以毫秒為單位)。
        public int ContinueTimeout { get; set; }
        //
        // 摘要:
        //     獲取或設定與此請求關聯的 Cookie。
        //
        // 返回結果:
        //     包含與此請求關聯的 Cookie 的 System.Net.CookieContainer。
        public virtual CookieContainer CookieContainer { get; set; }
        //
        // 摘要:
        //     獲取或設定請求的身份驗證資訊。
        //
        // 返回結果:
        //     包含與該請求關聯的身份驗證憑據的 System.Net.ICredentials。預設值為 null。
        public override ICredentials Credentials { get; set; }
        //
        // 摘要:
        //     獲取或設定要在 HTTP 請求中使用的 Date HTTP 標頭值。
        //
        // 返回結果:
        //     HTTP 請求中的 Date 標頭值。
        public DateTime Date { get; set; }
        //
        // 摘要:
        //     獲取或設定 Expect HTTP 標頭的值。
        //
        // 返回結果:
        //     ExpectHTTP 標頭的內容。預設值為 null。說明此屬性的值儲存在 System.Net.WebHeaderCollection 中。如果設定了
        //     WebHeaderCollection,則該屬性值將丟失。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     Expect 被設定為一個包含“100-continue”(作為子字串)的字串。
        public string Expect { get; set; }
        //
        // 摘要:
        //     獲取一個值,該值指示是否收到了來自 Internet 資源的響應。
        //
        // 返回結果:
        //     如果接收到了響應,則為 true,否則為 false。
        public virtual bool HaveResponse { get; }
        //
        // 摘要:
        //     指定構成 HTTP 標頭的名稱/值對的集合。
        //
        // 返回結果:
        //     包含構成 HTTP 請求標頭的名稱/值對的 System.Net.WebHeaderCollection。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     已通過呼叫 System.Net.HttpWebRequest.GetRequestStream、System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)、System.Net.HttpWebRequest.GetResponse
        //     或 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     方法啟動了該請求。
        public override WebHeaderCollection Headers { get; set; }
        //
        // 摘要:
        //     獲取或設定要在 HTTP 請求中獨立於請求 URI 使用的 Host 標頭值。
        //
        // 返回結果:
        //     HTTP 請求中的 Host 標頭值。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     不能將主機標頭設定為 null。
        //
        //   T:System.ArgumentException:
        //     不能將主機標頭設定為無效值。
        //
        //   T:System.InvalidOperationException:
        //     在已經開始傳送 System.Net.HttpWebRequest 之後,不能設定主機標頭。
        public string Host { get; set; }
        //
        // 摘要:
        //     獲取或設定 If-Modified-Since HTTP 標頭的值。
        //
        // 返回結果:
        //     包含 If-Modified-SinceHTTP 標頭內容的 System.DateTime。預設值是當前日期和時間。
        public DateTime IfModifiedSince { get; set; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否與 Internet 資源建立持續型連線。
        //
        // 返回結果:
        //     如果對 Internet 資源的請求所包含的 Connection HTTP 標頭帶有 Keep-alive 這一值,則為 true;否則為 false。預設值為
        //     true。
        public bool KeepAlive { get; set; }
        //
        // 摘要:
        //     獲取或設定請求將跟隨的重定向的最大數目。
        //
        // 返回結果:
        //     請求將跟隨的重定向響應的最大數目。預設值為 50。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     該值被設定為 0 或更小。
        public int MaximumAutomaticRedirections { get; set; }
        //
        // 摘要:
        //     獲取或設定響應標頭允許的最大長度。
        //
        // 返回結果:
        //     響應標頭的長度,以 KB(1024 位元組)為單位。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     該屬性是在提交請求後設置的。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     該值小於 0 並且不等於 -1。
        public int MaximumResponseHeadersLength { get; set; }
        //
        // 摘要:
        //     獲取或設定請求的媒體型別。
        //
        // 返回結果:
        //     請求的媒體型別。預設值為 null。
        public string MediaType { get; set; }
        //
        // 摘要:
        //     獲取或設定請求的方法。
        //
        // 返回結果:
        //     用於聯絡 Internet 資源的請求方法。預設值為 GET。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     未提供任何方法。- 或 -方法字串包含無效字元。
        public override string Method { get; set; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否通過管線將請求傳輸到 Internet 資源。
        //
        // 返回結果:
        //     如果通過管線傳輸請求,則為 true,否則為 false。預設值為 true。
        public bool Pipelined { get; set; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否隨請求傳送一個 Authorization 標頭。
        //
        // 返回結果:
        //     true 表示在發生身份驗證之後隨請求一起傳送 HTTP 授權標頭;否則為 false。預設值為 false。
        public override bool PreAuthenticate { get; set; }
        //
        // 摘要:
        //     獲取或設定用於請求的 HTTP 版本。
        //
        // 返回結果:
        //     用於請求的 HTTP 版本。預設值為 System.Net.HttpVersion.Version11。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     HTTP 版本被設定為除 1.0 或 1.1 以外的值。
        public Version ProtocolVersion { get; set; }
        //
        // 摘要:
        //     獲取或設定請求的代理資訊。
        //
        // 返回結果:
        //     用於代理請求的 System.Net.IWebProxy 物件。預設值通過呼叫 System.Net.GlobalProxySelection.Select
        //     屬性設定。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     將 System.Net.HttpWebRequest.Proxy 設定為 null。
        //
        //   T:System.InvalidOperationException:
        //     已通過呼叫 System.Net.HttpWebRequest.GetRequestStream、System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)、System.Net.HttpWebRequest.GetResponse
        //     或 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     啟動了該請求。
        //
        //   T:System.Security.SecurityException:
        //     呼叫方沒有進行請求的操作的許可權。
        public override IWebProxy Proxy { get; set; }
        //
        // 摘要:
        //     獲取或設定寫入或讀取流時的超時(以毫秒為單位)。
        //
        // 返回結果:
        //     在寫入超時或讀取超時之前的毫秒數。預設值為 300,000 毫秒(5 分鐘)。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     已傳送請求。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     為 Set 操作指定的值小於等於零,並且不等於 System.Threading.Timeout.Infinite
        public int ReadWriteTimeout { get; set; }
        //
        // 摘要:
        //     獲取或設定 Referer HTTP 標頭的值。
        //
        // 返回結果:
        //     Referer HTTP 標頭的值。預設值為 null。
        public string Referer { get; set; }
        //
        // 摘要:
        //     獲取請求的原始統一資源識別符號 (URI)。
        //
        // 返回結果:
        //     一個 System.Uri,其中包含傳遞給 System.Net.WebRequest.Create(System.String) 方法的 Internet
        //     資源的 URI。
        public override Uri RequestUri { get; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否將資料分段傳送到 Internet 資源。
        //
        // 返回結果:
        //     如果為 true,則將資料分段傳送到 Internet 資源;否則為 false。預設值為 false。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     已通過呼叫 System.Net.HttpWebRequest.GetRequestStream、System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)、System.Net.HttpWebRequest.GetResponse
        //     或 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     方法啟動了該請求。
        public bool SendChunked { get; set; }
        //
        // 摘要:
        //     獲取或設定用於驗證伺服器證書的回撥函式。
        //
        // 返回結果:
        //     用於驗證伺服器證書的回撥函式。用於驗證伺服器證書的回撥函式。
        public RemoteCertificateValidationCallback ServerCertificateValidationCallback { get; set; }
        //
        // 摘要:
        //     獲取用於請求的服務點。
        //
        // 返回結果:
        //     表示與 Internet 資源的網路連線的 System.Net.ServicePoint。
        public ServicePoint ServicePoint { get; }
        //
        // 摘要:
        //     獲取一個值,該值指示請求是否為 System.Net.CookieContainer 提供支援。
        //
        // 返回結果:
        //     true如果請求提供了對支援System.Net.CookieContainer;否則為false。如果支援 System.Net.CookieContainer,則為
        //     true;否則為 false。
        public virtual bool SupportsCookieContainer { get; }
        //
        // 摘要:
        //     獲取或設定 System.Net.HttpWebRequest.GetResponse 和 System.Net.HttpWebRequest.GetRequestStream
        //     方法的超時值(以毫秒為單位)。
        //
        // 返回結果:
        //     請求超時前等待的毫秒數。預設值是 100,000 毫秒(100 秒)。
        //
        // 異常:
        //   T:System.ArgumentOutOfRangeException:
        //     指定的值小於零,並且不為 System.Threading.Timeout.Infinite。
        public override int Timeout { get; set; }
        //
        // 摘要:
        //     獲取或設定 Transfer-encoding HTTP 標頭的值。
        //
        // 返回結果:
        //     Transfer-encoding HTTP 標頭的值。預設值為 null。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     當 System.Net.HttpWebRequest.SendChunked 為 false 時設定 System.Net.HttpWebRequest.TransferEncoding。
        //
        //   T:System.ArgumentException:
        //     System.Net.HttpWebRequest.TransferEncoding 被設定為值“Chunked”。
        public string TransferEncoding { get; set; }
        //
        // 摘要:
        //     獲取或設定一個值,該值指示是否允許經過高速 NTLM 身份驗證的連線共享。
        //
        // 返回結果:
        //     true 表示使經過身份驗證的連線保持開啟狀態;否則為 false。
        public bool UnsafeAuthenticatedConnectionSharing { get; set; }
        //
        // 摘要:
        //     獲取或設定一個 System.Boolean 值,該值控制預設憑據是否隨請求一起傳送。
        //
        // 返回結果:
        //     如果使用預設憑據,則為 true;否則為 false。預設值為 false。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     您嘗試在該請求傳送之後設定此屬性。
        public override bool UseDefaultCredentials { get; set; }
        //
        // 摘要:
        //     獲取或設定 User-agent HTTP 標頭的值。
        //
        // 返回結果:
        //     User-agent HTTP 標頭的值。預設值為 null。說明此屬性的值儲存在 System.Net.WebHeaderCollection 中。如果設定了
        //     WebHeaderCollection,則該屬性值將丟失。
        public string UserAgent { get; set; }

        //
        // 摘要:
        //     取消對 Internet 資源的請求。
        public override void Abort();
        //
        // 摘要:
        //     向請求新增從請求資料的開始處或結束處的特定範圍的位元組範圍標頭。
        //
        // 引數:
        //   range:
        //     範圍的開始點或結束點。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(long range);
        //
        // 摘要:
        //     向請求新增從請求資料的開始處或結束處的特定範圍的位元組範圍標頭。
        //
        // 引數:
        //   range:
        //     範圍的開始點或結束點。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(int range);
        //
        // 摘要:
        //     向請求新增從請求資料的開始處或結束處計算的特定範圍的 Range 標頭。
        //
        // 引數:
        //   rangeSpecifier:
        //     範圍說明。
        //
        //   range:
        //     範圍的開始點或結束點。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     rangeSpecifier 為 null。
        //
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(string rangeSpecifier, long range);
        //
        // 摘要:
        //     向請求新增從請求資料的開始處或結束處計算的特定範圍的 Range 標頭。
        //
        // 引數:
        //   rangeSpecifier:
        //     範圍說明。
        //
        //   range:
        //     範圍的開始點或結束點。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     rangeSpecifier 為 null。
        //
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(string rangeSpecifier, int range);
        //
        // 摘要:
        //     向請求新增指定範圍的位元組範圍標頭。
        //
        // 引數:
        //   from:
        //     開始傳送資料的位置。
        //
        //   to:
        //     停止傳送資料的位置。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     from 大於to- 或 - from 或 to 小於 0。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(long from, long to);
        //
        // 摘要:
        //     向請求新增指定範圍的位元組範圍標頭。
        //
        // 引數:
        //   from:
        //     開始傳送資料的位置。
        //
        //   to:
        //     停止傳送資料的位置。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     from 大於to- 或 - from 或 to 小於 0。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(int from, int to);
        //
        // 摘要:
        //     向請求新增指定範圍的範圍標頭。
        //
        // 引數:
        //   rangeSpecifier:
        //     範圍說明。
        //
        //   from:
        //     開始傳送資料的位置。
        //
        //   to:
        //     停止傳送資料的位置。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     rangeSpecifier 為 null。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     from 大於to- 或 - from 或 to 小於 0。
        //
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(string rangeSpecifier, long from, long to);
        //
        // 摘要:
        //     向請求新增指定範圍的範圍標頭。
        //
        // 引數:
        //   rangeSpecifier:
        //     範圍說明。
        //
        //   from:
        //     開始傳送資料的位置。
        //
        //   to:
        //     停止傳送資料的位置。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     rangeSpecifier 為 null。
        //
        //   T:System.ArgumentOutOfRangeException:
        //     from 大於to- 或 - from 或 to 小於 0。
        //
        //   T:System.ArgumentException:
        //     rangeSpecifier 無效。
        //
        //   T:System.InvalidOperationException:
        //     未能新增範圍標頭。
        public void AddRange(string rangeSpecifier, int from, int to);
        //
        // 摘要:
        //     開始對用來寫入資料的 System.IO.Stream 物件的非同步請求。
        //
        // 引數:
        //   callback:
        //     System.AsyncCallback 委託。
        //
        //   state:
        //     此請求的狀態物件。
        //
        // 返回結果:
        //     引用該非同步請求的 System.IAsyncResult。
        //
        // 異常:
        //   T:System.Net.ProtocolViolationException:
        //     System.Net.HttpWebRequest.Method 屬性為 GET 或 HEAD。- 或 - System.Net.HttpWebRequest.KeepAlive
        //     為 true,System.Net.HttpWebRequest.AllowWriteStreamBuffering 為 false,System.Net.HttpWebRequest.ContentLength
        //     為 -1,System.Net.HttpWebRequest.SendChunked 為 false,System.Net.HttpWebRequest.Method
        //     為 POST 或 PUT。
        //
        //   T:System.InvalidOperationException:
        //     流正由上一個 System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
        //     呼叫使用。- 或 - System.Net.HttpWebRequest.TransferEncoding 被設定為一個值,並且 System.Net.HttpWebRequest.SendChunked
        //     為 false。- 或 -執行緒池中的執行緒即將用完。
        //
        //   T:System.NotSupportedException:
        //     請求快取驗證程式指示對此請求的響應可從快取中提供;但是寫入資料的請求不得使用快取。如果您正在使用錯誤實現的自定義快取驗證程式,則會發生此異常。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。
        //
        //   T:System.ObjectDisposedException:
        //     在 .NET Compact Framework 應用程式中,未正確獲得和關閉一個內容長度為零的請求流。有關處理內容長度為零的請求的更多資訊,請參見 Network
        //     Programming in the .NET Compact Framework。
        public override IAsyncResult BeginGetRequestStream(AsyncCallback callback, object state);
        //
        // 摘要:
        //     開始對 Internet 資源的非同步請求。
        //
        // 引數:
        //   callback:
        //     System.AsyncCallback 委託
        //
        //   state:
        //     此請求的狀態物件。
        //
        // 返回結果:
        //     引用對響應的非同步請求的 System.IAsyncResult。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     流正由上一個 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     呼叫使用- 或 - System.Net.HttpWebRequest.TransferEncoding 被設定為一個值,並且 System.Net.HttpWebRequest.SendChunked
        //     為 false。- 或 -執行緒池中的執行緒即將用完。
        //
        //   T:System.Net.ProtocolViolationException:
        //     System.Net.HttpWebRequest.Method 為 GET 或 HEAD,且 System.Net.HttpWebRequest.ContentLength
        //     大於零或 System.Net.HttpWebRequest.SendChunked 為 true。- 或 - System.Net.HttpWebRequest.KeepAlive
        //     為 true,System.Net.HttpWebRequest.AllowWriteStreamBuffering 為 false,同時 System.Net.HttpWebRequest.ContentLength
        //     為 -1,System.Net.HttpWebRequest.SendChunked 為 false,或者 System.Net.HttpWebRequest.Method
        //     為 POST 或 PUT。- 或 -該 System.Net.HttpWebRequest 具有實體,但不用呼叫 System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
        //     方法呼叫 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     方法。- 或 -System.Net.HttpWebRequest.ContentLength 大於零,但應用程式不會寫入所有承諾的資料。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。
        public override IAsyncResult BeginGetResponse(AsyncCallback callback, object state);
        //
        // 摘要:
        //     結束對用於寫入資料的 System.IO.Stream 物件的非同步請求。
        //
        // 引數:
        //   asyncResult:
        //     對流的掛起請求。
        //
        // 返回結果:
        //     用來寫入請求資料的 System.IO.Stream。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     asyncResult 為 null。
        //
        //   T:System.IO.IOException:
        //     請求未完成,沒有可用的流。
        //
        //   T:System.ArgumentException:
        //     當前例項沒有從 System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
        //     呼叫返回 asyncResult。
        //
        //   T:System.InvalidOperationException:
        //     以前使用 asyncResult 呼叫過此方法。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。- 或 -處理請求時發生錯誤。
        public override Stream EndGetRequestStream(IAsyncResult asyncResult);
        //
        // 摘要:
        //     結束對用於寫入資料的 System.IO.Stream 物件的非同步請求,並輸出與該流關聯的 System.Net.TransportContext。
        //
        // 引數:
        //   asyncResult:
        //     對流的掛起請求。
        //
        //   context:
        //     System.IO.Stream 的 System.Net.TransportContext。
        //
        // 返回結果:
        //     用來寫入請求資料的 System.IO.Stream。
        //
        // 異常:
        //   T:System.ArgumentException:
        //     當前例項沒有從 System.Net.HttpWebRequest.BeginGetRequestStream(System.AsyncCallback,System.Object)
        //     呼叫返回 asyncResult。
        //
        //   T:System.ArgumentNullException:
        //     asyncResult 為 null。
        //
        //   T:System.InvalidOperationException:
        //     以前使用 asyncResult 呼叫過此方法。
        //
        //   T:System.IO.IOException:
        //     請求未完成,沒有可用的流。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。- 或 -處理請求時發生錯誤。
        public Stream EndGetRequestStream(IAsyncResult asyncResult, out TransportContext context);
        //
        // 摘要:
        //     結束對 Internet 資源的非同步請求。
        //
        // 引數:
        //   asyncResult:
        //     掛起的對響應的請求。
        //
        // 返回結果:
        //     包含來自 Internet 資源的響應的 System.Net.WebResponse。
        //
        // 異常:
        //   T:System.ArgumentNullException:
        //     asyncResult 為 null。
        //
        //   T:System.InvalidOperationException:
        //     以前使用 asyncResult. 呼叫過此方法。- 或 -System.Net.HttpWebRequest.ContentLength 屬性大於 0,但是資料尚未寫入請求流。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。- 或 -處理請求時發生錯誤。
        //
        //   T:System.ArgumentException:
        //     asyncResult was not returned by the current instance from a call to System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object).
        public override WebResponse EndGetResponse(IAsyncResult asyncResult);
        //
        // 摘要:
        //     獲取用於寫入請求資料的 System.IO.Stream 物件。
        //
        // 返回結果:
        //     用來寫入請求資料的 System.IO.Stream。
        //
        // 異常:
        //   T:System.Net.ProtocolViolationException:
        //     System.Net.HttpWebRequest.Method 屬性為 GET 或 HEAD。- 或 - System.Net.HttpWebRequest.KeepAlive
        //     為 true,System.Net.HttpWebRequest.AllowWriteStreamBuffering 為 false,System.Net.HttpWebRequest.ContentLength
        //     為 -1,System.Net.HttpWebRequest.SendChunked 為 false,System.Net.HttpWebRequest.Method
        //     為 POST 或 PUT。
        //
        //   T:System.InvalidOperationException:
        //     System.Net.HttpWebRequest.GetRequestStream 方法被呼叫多次。- 或 - System.Net.HttpWebRequest.TransferEncoding
        //     被設定為一個值,並且 System.Net.HttpWebRequest.SendChunked 為 false。
        //
        //   T:System.NotSupportedException:
        //     請求快取驗證程式指示對此請求的響應可從快取中提供;但是寫入資料的請求不得使用快取。如果您正在使用錯誤實現的自定義快取驗證程式,則會發生此異常。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。- 或 -請求的超時期限到期。- 或 -處理請求時發生錯誤。
        //
        //   T:System.ObjectDisposedException:
        //     在 .NET Compact Framework 應用程式中,未正確獲得和關閉一個內容長度為零的請求流。有關處理內容長度為零的請求的更多資訊,請參見 Network
        //     Programming in the .NET Compact Framework。
        public override Stream GetRequestStream();
        //
        // 摘要:
        //     獲取用於寫入請求資料的 System.IO.Stream 物件,並輸出與該流關聯的 System.Net.TransportContext。
        //
        // 引數:
        //   context:
        //     System.IO.Stream 的 System.Net.TransportContext。
        //
        // 返回結果:
        //     用來寫入請求資料的 System.IO.Stream。
        //
        // 異常:
        //   T:System.Exception:
        //     System.Net.HttpWebRequest.GetRequestStream 方法無法獲取 System.IO.Stream。
        //
        //   T:System.InvalidOperationException:
        //     System.Net.HttpWebRequest.GetRequestStream 方法被呼叫多次。- 或 - System.Net.HttpWebRequest.TransferEncoding
        //     被設定為一個值,並且 System.Net.HttpWebRequest.SendChunked 為 false。
        //
        //   T:System.NotSupportedException:
        //     請求快取驗證程式指示對此請求的響應可從快取中提供;但是寫入資料的請求不得使用快取。如果您正在使用錯誤實現的自定義快取驗證程式,則會發生此異常。
        //
        //   T:System.Net.ProtocolViolationException:
        //     System.Net.HttpWebRequest.Method 屬性為 GET 或 HEAD。- 或 - System.Net.HttpWebRequest.KeepAlive
        //     為 true,System.Net.HttpWebRequest.AllowWriteStreamBuffering 為 false,System.Net.HttpWebRequest.ContentLength
        //     為 -1,System.Net.HttpWebRequest.SendChunked 為 false,System.Net.HttpWebRequest.Method
        //     為 POST 或 PUT。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。- 或 -請求的超時期限到期。- 或 -處理請求時發生錯誤。
        public Stream GetRequestStream(out TransportContext context);
        //
        // 摘要:
        //     返回來自 Internet 資源的響應。
        //
        // 返回結果:
        //     包含來自 Internet 資源的響應的 System.Net.WebResponse。
        //
        // 異常:
        //   T:System.InvalidOperationException:
        //     流正由上一個 System.Net.HttpWebRequest.BeginGetResponse(System.AsyncCallback,System.Object)
        //     呼叫使用。- 或 - System.Net.HttpWebRequest.TransferEncoding 被設定為一個值,並且 System.Net.HttpWebRequest.SendChunked
        //     為 false。
        //
        //   T:System.Net.ProtocolViolationException:
        //     System.Net.HttpWebRequest.Method 為 GET 或 HEAD,並且或者 System.Net.HttpWebRequest.ContentLength
        //     大於或等於零,或者 System.Net.HttpWebRequest.SendChunked 為 true。- 或 - System.Net.HttpWebRequest.KeepAlive
        //     為 true,System.Net.HttpWebRequest.AllowWriteStreamBuffering 為 false,System.Net.HttpWebRequest.ContentLength
        //     為 -1,System.Net.HttpWebRequest.SendChunked 為 false,System.Net.HttpWebRequest.Method
        //     為 POST 或 PUT。- 或 -該 System.Net.HttpWebRequest 具有實體,但不用呼叫 System.Net.HttpWebRequest.GetRequestStream
        //     方法呼叫 System.Net.HttpWebRequest.GetResponse 方法。- 或 -System.Net.HttpWebRequest.ContentLength
        //     大於零,但應用程式不會寫入所有承諾的資料。
        //
        //   T:System.NotSupportedException:
        //     請求快取驗證程式指示對此請求的響應可從快取中提供;但是,此請求包含要傳送到伺服器的資料。傳送資料的請求不得使用快取。如果您正在使用錯誤實現的自定義快取驗證程式,則會發生此異常。
        //
        //   T:System.Net.WebException:
        //     System.Net.HttpWebRequest.Abort 以前被呼叫過。- 或 -請求的超時期限到期。- 或 -處理請求時發生錯誤。
        public override WebResponse GetResponse();
        //
        // 摘要:
        //     使用序列化目標物件所需的資料填充 System.Runtime.Serialization.SerializationInfo。
        //
        // 引數:
        //   serializationInfo:
        //     要填充資料的 System.Runtime.Serialization.SerializationInfo。
        //
        //   streamingContext:
        //     用於指定該序列化的目標的 System.Runtime.Serialization.StreamingContext。
        protected override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext);
    }
}