Читать «C# 4.0 полное руководство - 2011» онлайн - страница 638

Герберт Шилдт

Получает коллекцию заголовков, присоединяе

Headers! get; }

мых к ответу

public

bool IsFromCache { get; }

Принимает логическое значение true, если запрос получен из кеша. А если запрос доставлен по сети, то принимает логическое значение false

public

bool

Принимает логическое значение true, если

IsMutuallyAuthenticated { get; }

клиент и сервер опознают друг друга, а иначе — принимает логическое значение false

public DateTime LastModified { get; }

Получает время последней модификации ресурса

public

string Method { get; }

Получает строку, которая задает способ ответа

public

Version ProtocolVersion

Получает объект типа Version, описываю

{ get;

}

щий версию протокола HTTP, используемую в транзакции

public

Uri ReponseUri { get; }

Получает URI, по которому был сформирован ответ. Этот идентификатор может отличаться от запрашиваемого, если ответ был переадресован по другому URI

public

string Server { get; }

Получает строку, обозначающую имя сервера

public

HttpStatusCode StatusCode

Получает объект типа HttpStatusCode, опи

{ get;

}

сывающий состояние транзакции

public

string StatusDescription

Получает строку, обозначающую состояние

{ get;

}

транзакции в удобочитаемой форме

Доступ к заголовку

Для доступа к заголовку с информацией, получаемой в ответ по протоколу HTTP, служит свойство Headers, определенное в классе HttpWebResponse.

public WebHeaderCollection Headers{ get; }

Заголовок протокола HTTP состоит из пар "имя-значение", представленных строками. Каждая пара "имя-значение" хранится в коллекции класса WebHeaderCollection. Эта коллекция специально предназначена для хранения пар "имя-значение" и применяется аналогично любой другой коллекции (подробнее об этом см. в главе 25). Строковый массив имен может быть получен из свойства AllKeys, а отдельные значения — по соответствующему имени при вызове метода Get Values (). Этот метод возвращает массив строк, содержащий значения, связанные с заголовком, передаваемым в качестве аргумента. Метод Get Values () перегружается, чтобы принять числовой индекс или имя заголовка.

В приведенной ниже программе отображаются заголовки, связанные с сетевым ресурсом, доступным по адресу www. McGraw-Hill. com.

// Проверить заголовки.

using System; using System.Net;

class HeaderDemo { static void Main() {

// Создать объект запроса типа WebRequest по указанному URI.

HttpWebRequest req = (HttpWebRequest)

WebRequest.Create("http://www.McGraw-Hill.com");

// Отправить сформированный запрос и получить на него ответ.

HttpWebResponse resp = (HttpWebResponse) req.GetResponse ();

// Получить список имен.

string[] names = resp.Headers.AllKeys;

// Отобразить пары "имя-значение" из заголовка.

Console.WriteLine ("{0,-20}{1}\п", "Имя", "Значение"); foreach(string n in names) {

Console.Write ("{0,-20}", n);

foreach(string v in resp.Headers.GetValues(n))

Console.WriteLine(v);

}

// Закрыть ответный поток, resp.Close();

}

}

Ниже приведен полученный результат. Не следует забывать, что информация в заголовке периодически меняется, поэтому у вас результат может оказаться несколько иным.

Имя    Значение

Transfer-encoding    chunked