программирование подключаемых протоколовProgramming Pluggable Protocols

Абстрактные классы WebRequest и WebResponse реализуют основу для подключаемых протоколов.The abstract WebRequest and WebResponse classes provide the base for pluggable protocols. Создавая производные классы для определенных протоколов на основе классов WebRequest и WebResponse, приложение может запрашивать данные интернет-ресурса и считывать ответ, не указывая используемый протокол.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.

Прежде чем создавать класс WebRequest для определенного протокола, необходимо зарегистрировать его метод Create.Before you can create a protocol-specific WebRequest, you must register its Create method. Используйте статический метод RegisterPrefix(String, IWebRequestCreate) класса WebRequest для регистрации потомка WebRequest, который будет обрабатывать набор запросов к конкретной интернет-схеме, к схеме и серверу либо к схеме, серверу и пути.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.

В большинстве случаев можно отправлять и получать данные с помощью методов и свойств класса WebRequest.In most cases you will be able to send and receive data using the methods and properties of the WebRequest class. Однако если нужно получить доступ к свойствам определенного протокола, можно выполнить приведение типа WebRequest к конкретному экземпляру производного класса.However, if you need to access protocol-specific properties, you can typecast a WebRequest to a specific derived-class instance.

Чтобы использовать преимущества подключаемых протоколов, потомки класса WebRequest должны предоставлять применяемую по умолчанию операцию "запрос-ответ", для которой не требуется задавать свойства определенного протокола.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. Например, класс HttpWebRequest, который реализует класс WebRequest для HTTP, предоставляет запрос GET по умолчанию и возвращает HttpWebResponse, который содержит поток, возвращенный веб-сервером.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.

См. такжеSee also