共用方式為


設計可外掛式通訊協定程式

抽象 WebRequestWebResponse 類別提供可外掛式通訊協定的基底。藉著從 WebRequestWebResponse 衍生通訊協定特定類別,應用程式可以自網際網路資源要求資料,並且不必指定使用的通訊協定即可讀取回應。

在您能夠建立 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 伺服器傳回的資料流。

請參閱

衍生自 WebRequest | 衍生自 WebResponse | 存取網際網路