Далее речь пойдет прежде всего о классах WebRequest и WebResponse, поскольку именно они положены в основу сетевых программных средств, доступных в пространстве имен System.Net.

Класс WebReques t

Класс WebRequest управляет сетевым запросом. Он является абстрактным, поскольку в нем не реализуется конкретный протокол. Тем не менее в нем определяются те методы и свойства, которые являются общими для всех сетевых запросов. В табл. 26.1 сведены методы, определенные в классе WebRequest и поддерживающие синхронную передачу данных, а в табл. 26.2 — свойства, объявляемые в классе WebRequest. Устанавливаемые по умолчанию значения свойств задаются в производных классах. Открытые конструкторы в классе WebRequest не определены.

Для того чтобы отправить запрос по адресу URI, необходимо сначала создать объект класса, производного от класса WebRequest и реализующего требуемый протокол. С этой целью вызывается статический метод Create (), определенный в классе WebRequest. Метод Create () возвращает объект класса, наследующего от класса WebRequest и реализующего конкретный протокол.

Таблица 26.1. Методы, определенные в классе WebRequest

 

Метод

 

Описание

 

Public static WebRequest

 

Создает объект типа WebRequest для иден

 

Create(string

 

тификатора URI, указываемого в строке

 

requestUriString)

 

requestUriString. Возвращаемый объект реализует протокол, заданный префиксом идентификатора URI. Следовательно, возвращаемый объект будет экземпляром класса, призводного от класса WebRequest. Если затребованный протокол недоступен, то генерируется исключение NotSupportedException. А если недействителен указанный формат идентификатора URI, то генерируется исключение UriFormatException

 

Метод

 

Описание

 

public static WebRequest Create(Uri requestUri)

Public virtual Stream GetRequestStream() public virtual WebResponse GetResponse()

 

Создает объект типа WebRequest для идентификатора URI, указываемого с помощью параметра reques tUri.Возвращаемый объект реализует протокол, заданный префиксом идентификатора URI. Следовательно, возвращаемый объект будет экземпляром класса, призводного от класса WebRequest. Если затребованный протокол недоступен, то генерируется исключение NotSupportedException Возвращает поток вывода, связанный с запрошенным ранее идентификатором URI Отправляет предварительно сформированный запрос и джидает ответа. Получив ответ, возвращает его в виде объекта класса WebReponse. Этот объект используется затем в программе для получения информации по указанному адресу URI

 

Таблица 26.2. Свойства, определенные в классе WebRequest

 

Свойство

 

Описание

 

Public AuthenticationLevel

 

Получает или устанавливает уровень аутентифи

 

AuthenticationLevel( get; set; }

 

кации

 

Public virtual

 

Получает или устанавливает правила использо

 

RequestCachePolicy CachePolicy

 

вания кеша, определяющие момент получения

 

{ get; set; }

 

ответа из кеша

 

Public virtual string

 

Получает или устанавливает имя группы подклю

 

ConnectionGroupName { get;

 

чения. Группы подключения представляют собой

 

set; }

 

способ создания ряда запросов. Они не нужны для простых транзакций в Интернете

 

Public virtual long

 

Получает или устанавливает длину передаваемо

 

ContentLength { get; set; }

 

го содержимого

 

Public virtual string

 

Получает или устанавливает описание переда

 

ContentType { get; set; }

 

ваемого содержимого

 

Public virtual Icredentials

 

Получает или устанавливает мандат, т.е. учетные

 

Credentials { get; set; }

 

данные пользователя

 

Public static

 

Получает или устанавливает правила использо

 

RequestCachePolicy

 

вания кеша по умолчанию, определяющие мо

 

DefaultCachePolicy { get; set; }

 

мент получения ответа из кеша

 

Public static IWebProxy

 

Получает или устанавливает используемый по

 

DefaultWebProxy { get; set; }

 

умолчанию прокси-сервер

 

Public virtual

 

Получает или устанавливает коллекцию заголовков

 

WebHeaderCollection Headers{

 

get; set; }