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 方法。