C# 之 HttpWebRequest類

      提供 WebRequest 類的 HTTP 特定的實現。                       html

      繼承層次結構 System .Object → System .MarshalByRefObject →  System.Net .WebRequest →   System.Net.HttpWebRequest。

      命名空間:System.Net ; 程序集: System(在 System.dll 中)正則表達式

      C# 語法
      [SerializableAttribute]
      public class HttpWebRequest : WebRequest, ISerializable

       HttpWebRequest 類型公開如下成員。express

一、構造函數     
名稱 說明
HttpWebRequest() 已過期。初始化 HttpWebRequest 類的新實例。
HttpWebRequest(SerializationInfo, StreamingContext) 已過期。從 SerializationInfo和 StreamingContext 類的指定實例初始化 HttpWebRequest 類的新實例。
 
二、屬性   
名稱 說明
Accept 獲取或設置 Accept HTTP 標頭的值。
Address 獲取實際響應請求的 Internet 資源的統一資源標識符 (URI)。
AllowAutoRedirect 獲取或設置一個值,該值指示請求是否應跟隨重定向響應。
AllowReadStreamBuffering 獲取或設置一個值,該值指示是否對從 Internet 資源接收的數據進行緩衝處理。
AllowWriteStreamBuffering 獲取或設置一個值,該值指示是否對發送到 Internet 資源的數據進行緩衝處理。
AuthenticationLevel 獲取或設置用於此請求的身份驗證和模擬的級別。 (繼承自 WebRequest。)
AutomaticDecompression 獲取或設置所使用的解壓縮類型。
CachePolicy 獲取或設置此請求的緩存策略。 (繼承自 WebRequest。)
ClientCertificates 獲取或設置與此請求關聯的安全證書集合。
Connection 獲取或設置 Connection HTTP 標頭的值。
ConnectionGroupName 獲取或設置請求的鏈接組的名稱。 (重寫 WebRequest.ConnectionGroupName。)
ContentLength 獲取或設置 Content-lengthHTTP 標頭。 (重寫 WebRequest.ContentLength。)
ContentType 獲取或設置 Content-type HTTP 標頭的值。 (重寫 WebRequest.ContentType。)
ContinueDelegate 獲取或設置當從 Internet 資源接收到 HTTP 100 持續響應時調用的委託方法。
ContinueTimeout 獲取或設置在接收到來自服務器的 100 次連續響應以前要等待的超時(以毫秒爲單位)。
CookieContainer 獲取或設置與此請求關聯的 cookie。
CreatorInstance 已過期。當在子類中重寫時,獲取從 IWebRequestCreate 類派生的工廠對象,該類用於建立爲生成對指定 URI 的請求而實例化的 WebRequest。 (繼承自 WebRequest。)
Credentials 獲取或設置請求的身份驗證信息。 (重寫 WebRequest.Credentials。)
Date 獲取或設置要在 HTTP 請求中使用的 Date HTTP 標頭值。
DefaultCachePolicy 獲取或設置此請求的默認緩存策略。
DefaultMaximumErrorResponseLength 獲取或設置 HTTP 錯誤響應的默認最大長度。
DefaultMaximumResponseHeadersLength 獲取或設置 MaximumResponseHeadersLength 屬性的默認值。
Expect 獲取或設置 Expect HTTP 標頭的值。
HaveResponse 獲取一個值,該值指示是否收到了來自 Internet 資源的響應。
Headers 指定構成 HTTP 標頭的名稱/值對的集合。 (重寫 WebRequest.Headers。)
Host 獲取或設置要在 HTTP 請求中獨立於請求 URI 使用的 Host 標頭值。
IfModifiedSince 獲取或設置 If-Modified-Since HTTP 標頭的值。
ImpersonationLevel 獲取或設置當前請求的模擬級別。 (繼承自 WebRequest。)
KeepAlive 獲取或設置一個值,該值指示是否與 Internet 資源創建持久性鏈接。
MaximumAutomaticRedirections 獲取或設置請求將跟隨的重定向的最大數目。
MaximumResponseHeadersLength 獲取或設置響應標題容許的最大長度。
MediaType 獲取或設置請求的媒體類型。
Method 獲取或設置請求的方法。 (重寫 WebRequest.Method。)
Pipelined 獲取或設置一個值,該值指示是否經過管線將請求傳輸到 Internet 資源。
PreAuthenticate 獲取或設置一個值,該值指示是否隨請求發送一個身份驗證標頭。 (重寫 WebRequest.PreAuthenticate。)
ProtocolVersion 獲取或設置用於請求的 HTTP 版本。
Proxy 獲取或設置請求的代理信息。 (重寫 WebRequest.Proxy。)
ReadWriteTimeout 獲取或設置寫入或讀取流時的超時(以毫秒爲單位)。
Referer 獲取或設置 Referer HTTP 標頭的值。
RequestUri 獲取請求的原始統一資源標識符 (URI)。 (重寫 WebRequest.RequestUri。)
SendChunked 獲取或設置一個值,該值指示是否將數據分段發送到 Internet 資源。
ServerCertificateValidationCallback 獲取或設置用於驗證服務器證書的回調函數。
ServicePoint 獲取用於請求的服務點。
SupportsCookieContainer 獲取一個值,該值指示請求是否爲 CookieContainer 提供支持。
Timeout 獲取或設置 GetResponse 和 GetRequestStream 方法的超時值(以毫秒爲單位)。 (重寫 WebRequest.Timeout。)
TransferEncoding 獲取或設置 Transfer-encoding HTTP 標頭的值。
UnsafeAuthenticatedConnectionSharing 獲取或設置一個值,該值指示是否容許通過高速 NTLM 身份驗證的鏈接共享。
UseDefaultCredentials 獲取或設置一個 Boolean 值,該值控制默認憑據是否隨請求一塊兒發送。 (重寫 WebRequest.UseDefaultCredentials。)
UserAgent 獲取或設置 User-agent HTTP 標頭的值。
 
三、方法     
名稱 說明
Abort 取消對 Internet 資源的請求。 (重寫 WebRequest.Abort()。)
AddRange(Int32) 向請求添加從請求數據的開始處或結束處的特定範圍的字節範圍標頭。
AddRange(Int64) 向請求添加從請求數據的開始處或結束處的特定範圍的字節範圍標頭。
AddRange(Int32, Int32) 向請求添加指定範圍的字節範圍標頭。
AddRange(Int64, Int64) 向請求添加指定範圍的字節範圍標頭。
AddRange(String, Int32) 向請求添加從請求數據的開始處或結束處計算的特定範圍的 Range 標頭。
AddRange(String, Int64) 向請求添加從請求數據的開始處或結束處計算的特定範圍的 Range 標頭。
AddRange(String, Int32, Int32) 向請求添加指定範圍的範圍標頭。
AddRange(String, Int64, Int64) 向請求添加指定範圍的範圍標頭。
BeginGetRequestStream 開始對用來寫入數據的 Stream 對象的異步請求。 (重寫 WebRequest.BeginGetRequestStream(AsyncCallback, Object)。)
BeginGetResponse 開始對 Internet 資源的異步請求。 (重寫 WebRequest.BeginGetResponse(AsyncCallback, Object)。)
CreateObjRef 建立一個對象,該對象包含生成用於與遠程對象進行通訊的代理所需的所有相關信息。 (繼承自 MarshalByRefObject。)
EndGetRequestStream(IAsyncResult) 結束對用於寫入數據的 Stream 對象的異步請求。 (重寫 WebRequest.EndGetRequestStream(IAsyncResult)。)
EndGetRequestStream(IAsyncResult,TransportContext) 結束對用於寫入數據的 Stream 對象的異步請求,並輸出與該流關聯的 TransportContext。
EndGetResponse 結束對 Internet 資源的異步請求。 (重寫 WebRequest.EndGetResponse(IAsyncResult)。)
Equals(Object) 肯定指定的對象是否等於當前對象。 (繼承自 Object。)
Finalize 容許對象在「垃圾回收」回收以前嘗試釋放資源並執行其餘清理操做。 (繼承自 Object。)
GetHashCode 做爲默認哈希函數。 (繼承自 Object。)
GetLifetimeService 檢索控制此實例的生存期策略的當前生存期服務對象。 (繼承自 MarshalByRefObject。)
GetObjectData 基礎結構。使用序列化目標對象所需的數據填充 SerializationInfo。 (重寫 WebRequest.GetObjectData(SerializationInfo, StreamingContext)。)
GetRequestStream() 獲取用於寫入請求數據的 Stream 對象。 (重寫 WebRequest.GetRequestStream()。)
GetRequestStream(TransportContext) 獲取用於寫入請求數據的 Stream 對象,並輸出與該流關聯的 TransportContext。
GetRequestStreamAsync 當在子類中被重寫時,將用於寫入數據的 Stream 做爲異步操做返回到 Internet 資源。 (繼承自 WebRequest。)
GetResponse 返回來自 Internet 資源的響應。 (重寫 WebRequest.GetResponse()。)
GetResponseAsync 當在子類中被重寫時,將做爲異步操做返回對 Internet 請求的響應。 (繼承自 WebRequest。)
GetType 獲取當前實例的 Type。 (繼承自 Object。)
InitializeLifetimeService 獲取控制此實例的生存期策略的生存期服務對象。 (繼承自 MarshalByRefObject。)
MemberwiseClone() 建立當前 Object 的淺表副本。 (繼承自 Object。)
MemberwiseClone(Boolean) 建立當前 MarshalByRefObject 對象的淺表副本。 (繼承自 MarshalByRefObject。)
ToString 返回表示當前對象的字符串。 (繼承自 Object。)
 
四、顯示接口實現     
名稱 說明
ISerializable.GetObjectData 基礎結構。使用將目標對象序列化所需的數據填充 SerializationInfo。
 
五、備註
      HttpWebRequest   類對 WebRequest 中定義的屬性和方法提供支持,也對使用戶可以直接與使用 HTTP 的服務器交互的附加屬性和方法提供支持。

      不要使用 HttpWebRequest 構造函數。  使用 WebRequest.Create 方法初始化新的 HttpWebRequest 對象。  若是統一資源標識符 (URI) 的方案是 http:// 或 https://,則 Create 返回 HttpWebRequest 對象。  緩存

      GetResponse   方法向 RequestUri 屬性中指定的資源發出同步請求並返回包含該響應的 HttpWebResponse。  能夠使用 BeginGetResponse 和 EndGetResponse 方法對資源發出異步請求。  安全

      當要向資源發送數據時,GetRequestStream 方法返回用於發送數據的 Stream 對象。  BeginGetRequestStream  和 EndGetRequestStream 方法提供對發送數據流的異步訪問。  服務器

      對於使用 HttpWebRequest 的客戶端驗證身份,客戶端證書必須安裝在當前用戶的「個人證書」存儲區中。cookie

      若是在訪問資源時發生錯誤,則 HttpWebRequest 類將引起 WebException。  WebException.Status 屬性包含指示錯誤源的 WebExceptionStatus 值。  WebException.StatusWebExceptionStatus.ProtocolError 時,Response 屬性包含從資源接收的 HttpWebResponse。  session

      HttpWebRequest   將發送到 Internet 資源的公共 HTTP 標頭值公開爲屬性,由方法或系統設置;下表包含完整列表。  能夠將 Headers 屬性中的其餘標頭設置爲名稱/值對。  注意,服務器和緩存在請求期間可能會更改或添加標頭。  app

      下表列出了由屬性或方法設置或由系統設置的 HTTP 標頭。框架

 

Header

設置方

Accept

Accept 屬性設置。

Connection

Connection 屬性和 KeepAlive 屬性設置。

Content-Length

ContentLength 屬性設置。

Content-Type

ContentType 屬性設置。

Expect

Expect 屬性設置。

日期

由系統設置爲當前日期。

主機

由系統設置爲當前主機信息。

If-Modified-Since

IfModifiedSince 屬性設置。

範圍

AddRange 方法設置。

Referer

Referer 屬性設置。

Transfer-Encoding

TransferEncoding 屬性設置(SendChunked 屬性必須爲 true)。

User-Agent

UserAgent 屬性設置。

說明說明

HttpWebRequest   自動註冊。  使用以 http:// 或 https:// 開頭的 URI 以前,不須要調用 RegisterPrefix 方法來註冊 System.Net.HttpWebRequest。 

      本地計算機或應用程序配置文件可能指定使用默認代理。  若是指定了 Proxy 屬性,則 Proxy 屬性中的代理設置會重寫本地計算機或應用程序配置文件,而且 HttpWebRequest 實例將實用指定的代理設置。  若是配置文件中未指定代理而且未指定 Proxy 屬性,則 HttpWebRequest 類使用從本地計算機上的 Internet Explorer 中繼承的代理設置。  若是 Internet Explorer 中沒有代理設置,請求會直接發送到服務器。 

      HttpWebRequest   類分析從 Internet Explorer 繼承的且包含通配符的代理忽略列表時會與 Internet Explorer 直接分析忽略列表不一樣。  例如,HttpWebRequest 類未來自 Internet Explorer 的其中包含「nt*」的忽略列表分析爲正則表達式「nt.$」。  此行爲不一樣於 Internet Explorer 的本機行爲。  所以 URL「http://intxxxxx」將忽略使用 HttpWebRequest 類的代理,但它不會忽略使用 Internet Explorer 的代理。 

說明說明

Framework 在建立 SSL 會話時緩存這些會話,若是可能,還嘗試對新請求重用緩存的會話。  嘗試重用 SSL 會話時,該框架將使用 ClientCertificates 的第一個元素(若是有);若是 ClientCertificates 爲空,則將嘗試重用匿名會話。 

說明說明

爲安全起見,默認狀況下禁用 Cookie。  若是您但願使用 Cookie,請使用 CookieContainer 屬性啓用 Cookie。 

示例
  下面的代碼示例爲 URI http://www.contoso.com/. 建立 HttpWebRequest。
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/");



相關文章
相關標籤/搜索