WebRequest 是 .NET Framework 中「請求/回應」模型的抽象基底類別,用於存取網際網路資料。使用此模型的應用程式可用協定不可知的方式從網際網路請求資料,應用程式處理 WebRequest 實例,而協定特定的子類別則執行具體細節。請求從應用程式發送至特定 URI(如伺服器上的網頁)。URI 從為應用程式註冊的 WebRequest 子類別清單中決定要建立的適當子類別。註冊子類別通常是為了處理特定協定(如 HTTP 或 FTP),也可針對特定伺服器或路徑註冊。
最常用的 Create 方法用於為指定的 URI 配置初始化新的 WebRequest 實例。
public static WebRequest Create(string requestUriString)
參數: requestUriString:識別網際網路資源的 URI。
傳回值: 特定 URI 配置的 WebRequest 子類別。
注意: Create 方法會根據執行時期判斷,傳回與 requestUri 最接近的已註冊匹配項。例如傳入 https:// 開頭的 URI 會回傳 HttpWebRequest;傳入 file:// 開頭則回傳 FileWebRequest 實例。.NET Framework 內建支援 https:// 與 file:// 兩種 URI 配置。
WebResponse 同為抽象基底類別,協定特定的回應類別由此衍生。應用程式可使用 WebResponse 實例以協定不可知的方式參與請求/回應事務,而衍生類別攜帶請求的詳細資訊。
當在子類別中被覆寫時,傳回對網際網路請求的回應。
public virtual WebResponse GetResponse()
傳回值: 包含對網際網路請求回應的 WebResponse。
WebClient 提供向 URI 識別的任何本地、內部網路或網際網路資源傳送資料、接收資料的公用方法。最常用的是 DownloadFile 方法。
將具有指定 URI 的資源下載到本地檔案。
public void DownloadFile(string address, string fileName)
參數:
address:下載資料的 URI。
fileName:接收資料的本地檔案名稱。
在 C# 中,可透過 HttpWebResponse 與 WebRequest 實現檔案下載。本範例將實作 HTML 網頁下載:點擊表單上的「取得網頁內容」按鈕,即可下載任何網站首頁,並可透過 WebClient 儲存至指定位置。