設計可外掛式通訊協定程式
抽象 WebRequest 和 WebResponse 類別提供可外掛式通訊協定的基底。藉著從 WebRequest 和 WebResponse 衍生通訊協定特定類別,應用程式可以自網際網路資源要求資料,並且不必指定使用的通訊協定即可讀取回應。
在您能夠建立 WebRequest 之前,必須註冊它的 Create 方法。使用 WebRequest 的靜態 RegisterPrefix 方法以註冊 WebRequest 子代 (Descendant),來處理對特定 Internet 配置、配置和伺服器,或是配置、伺服器和路徑的一組要求。下列程式碼範例示範如何註冊在其他地方定義的 FtpWebRequest。這個範例中,FtpWebRequestCreator 為實作會傳回 FtpWebRequest 物件的 Create 方法的物件。
以下程式碼範例假設您已撰寫其他程式碼來處理 FTP 通訊協定。
WebRequest.RegisterPrefix("ftp", new FtpWebRequestCreator());
WebRequest req = WebRequest.Create("ftp://ftp.contoso.com/");
[Visual Basic]
WebRequest.RegisterPrefix("ftp", New FtpWebRequestCreator())
Dim req As WebRequest = WebRequest.Create("ftp://ftp.contoso.com/")
大部份的狀況中,您都能夠使用 WebRequest 類別的方法和屬性送出和接收資料。然而,如果您需要存取通訊協定特定屬性,您可以將 WebRequest 轉換型別成特定衍生類別 (Derived-Class) 執行個體,就像下列程式碼範例所做的。
HttpWebRequest httpreq =
(HttpWebRequest) WebRequest.Create("https://www.contoso.com/");
[Visual Basic]
Dim httpreq As HttpWebRequest = _
CType(WebRequest.Create("https://www.contoso.com/"), HttpWebRequest)
若要充分利用可外掛式通訊協定,您的 WebRequest 子代必須提供不必設定通訊協定特定屬性的預設要求和回應異動。例如,實作 HTTP WebRequest 類別的 HttpWebRequest 類別會提供 GET 要求,並傳回 WebResponse 衍生的 HttpWebResponse,其中包含 Internet 伺服器傳回的資料流。