Programmieren austauschbarer ProtokolleProgramming Pluggable Protocols

Die abstrakten Klassen WebRequest und WebResponse stellen die Grundlage für austauschbare Protokolle bereit.The abstract WebRequest and WebResponse classes provide the base for pluggable protocols. Durch Ableiten protokollspezifischer Klassen von WebRequest und WebResponse kann eine Anwendung Daten von einer Internetressource anfordern und die Antwort ohne Angabe des verwendeten Protokolls lesen.By deriving protocol-specific classes from WebRequest and WebResponse, an application can request data from an Internet resource and read the response without specifying the protocol being used.

Vor dem Erstellen einer protokollspezifischen WebRequest müssen Sie die Create-Methode registrieren.Before you can create a protocol-specific WebRequest, you must register its Create method. Verwenden Sie die statische RegisterPrefix(String, IWebRequestCreate)-Methode von WebRequest zur Registrierung eines Nachfolgers von WebRequest, um eine Reihe von Anforderungen zu behandeln, die an ein bestimmtes Internetschema, an ein Schema und einen Server oder an ein Schema, einen Server und einen Pfad gerichtet sind.Use the static RegisterPrefix(String, IWebRequestCreate) method of WebRequest to register a WebRequest descendant to handle a set of requests to a particular Internet scheme, to a scheme and server, or to a scheme, server, and path.

In den meisten Fällen werden Sie mit den Methoden und Eigenschaften der WebRequest-Klasse Daten senden und empfangen können.In most cases you will be able to send and receive data using the methods and properties of the WebRequest class. Sollten Sie jedoch auf protokollspezifische Eigenschaften zugreifen müssen, können Sie eine Typumwandlung für WebRequest in eine bestimmte Instanz mit abgeleiteten Klassen durchführen.However, if you need to access protocol-specific properties, you can typecast a WebRequest to a specific derived-class instance.

Damit Sie von austauschbaren Protokollen profitieren können, müssen die WebRequest-Nachfolger eine Standardtransaktion für Anforderung und Antwort bereitstellen, für die keine protokollspezifischen Eigenschaften festgelegt werden müssen.To take advantage of pluggable protocols, your WebRequest descendants must provide a default request-and-response transaction that does not require protocol-specific properties to be set. So stellt beispielsweise die HttpWebRequest-Klasse, die für HTTP die WebRequest-Klasse implementiert, standardmäßig eine GET-Anforderung bereit und gibt eine HttpWebResponse zurück, die den vom Webserver zurückgegebenen Datenstrom enthält.For example, the HttpWebRequest class, which implements the WebRequest class for HTTP, provides a GET request by default and returns an HttpWebResponse that contains the stream returned from the Web server.

Siehe auchSee also