Freigeben über


Programmieren von austauschbaren Protokollen

Die abstrakte WebRequest-Klasse und WebResponse-Klasse bilden die Grundlage für austauschbare Protokolle. Ableitungen von WebRequest und WebResponse für bestimmte Protokolle ermöglichen es einer Anwendung, Daten von einer Internetressource anzufordern und die Antwort zu lesen, ohne das verwendete Protokoll angeben zu müssen.

Vor dem Erstellen eines WebRequest muss die entsprechende Create-Methode registriert werden. Mit Hilfe der statischen RegisterPrefix-Methode von WebRequest können Sie einen Nachkommen von WebRequest registrieren, der eine Reihe von Anforderungen an ein bestimmtes Internetschema, an ein Schema und einen Server oder an ein Schema, einen Server und einen Pfad behandelt. Das folgende Codebeispiel veranschaulicht, wie ein an anderer Stelle definierter FtpWebRequest registriert wird. In diesem Beispiel ist FtpWebRequestCreator das Objekt für die Implementierung der Create-Methode, die das FtpWebRequest-Objekt zurückgibt.

Im folgenden Codebeispiel wird davon ausgegangen, dass Sie zusätzlichen Code verfasst haben, der das FTP-Protokoll behandelt.

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/")

In den meisten Fällen können Sie mit Hilfe der Methoden und Eigenschaften der WebRequest-Klasse Daten senden und empfangen. Wenn Sie jedoch Zugriff auf bestimmte Protokolleigenschaften benötigen, führen Sie wie in dem folgenden Codebeispiel für WebRequest eine Typumwandlung in eine bestimmte abgeleitete Klasseninstanz durch.

HttpWebRequest httpreq = 
   (HttpWebRequest) WebRequest.Create("https://www.contoso.com/");
[Visual Basic]
Dim httpreq As HttpWebRequest = _
   CType(WebRequest.Create("https://www.contoso.com/"), HttpWebRequest)

Um die Vorteile von austauschbaren Protokollen zu nutzen, müssen die Nachkommen von WebRequest eine Standardtransaktion für Anforderungen und Antworten bereitstellen, die das Festlegen bestimmter Protokolleigenschaften nicht voraussetzt. Beispielsweise stellt die HttpWebRequest-Klasse, eine Implementierung der WebRequest-Klasse für HTTP, eine GET-Anforderung bereit und gibt eine von WebResponse abgeleitete HttpWebResponse zurück, die den vom Internetserver zurückgegebenen Stream enthält.

Siehe auch

Ableiten aus WebRequest | Ableiten aus WebResponse | Zugreifen auf das Internet