public string CharacterSet { get; } - Получает название используемого набора символов
public string ContentEncoding { get; } - Получает название схемы кодирования
public long ContentLength { get; } - Получает длину принимаемого содержимого. Если она недоступна, свойство имеет значение -1
public string ContentType { get; } - Получает описание содержимого
public CookieCollection Cookies { get; set; } - Получает или устанавливает список cookie-наборов, присоединяемых к ответу
public WebHeaderCollection Headers! get; } - Получает коллекцию заголовков, присоединяемых к ответу
public bool IsFromCache { get; } - Принимает логическое значение true, если запрос получен из кеша. А если запрос доставлен по сети, то принимает логическое значение false
public bool IsMutuallyAuthenticated { get; } - Принимает логическое значение true, если клиент и сервер опознают друг друга, а иначе — принимает логическое значение false
public DateTime LastModified { get; } - Получает время последней модификации ресурса
public string Method { get; } - Получает строку, которая задает способ ответа
public Version ProtocolVersion { get; } - Получает объект типа Version, описывающий версию протокола HTTP, используемую в транзакции
public Uri ReponseUri { get; } - Получает URI, по которому был сформирован ответ. Этот идентификатор может отличаться от запрашиваемого, если ответ был переадресован по другому URI
public string Server { get; } - Получает строку, обозначающую имя сервера
public HttpStatusCode StatusCode { get; } - Получает объект типа HttpStatusCode, описывающий состояние транзакции
public string StatusDescription { get; } - Получает строку, обозначающую состояние транзакции в удобочитаемой форме
Для доступа к заголовку с информацией, получаемой в ответ по протоколу HTTP, служит свойство Headers
, определенное в классе HttpWebResponse
.
public WebHeaderCollection Headers{ get; }
Заголовок протокола HTTP состоит из пар "имя-значение", представленных строками. Каждая пара "имя-значение" хранится в коллекции класса WebHeaderCollection
. Эта коллекция специально предназначена для хранения пар "имя-значение" и применяется аналогично любой другой коллекции (подробнее об этом см. в главе 25). Строковый массив имен может быть получен из свойства AllKeys
, а отдельные значения — по соответствующему имени при вызове метода GetValues()
. Этот метод возвращает массив строк, содержащий значения, связанные с заголовком, передаваемым в качестве аргумента. Метод GetValues()
перегружается, чтобы принять числовой индекс или имя заголовка.
В приведенной ниже программе отображаются заголовки, связанные с сетевым ресурсом, доступным по адресу 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();
}
}
Ниже приведен полученный результат. Не следует забывать, что информация в заголовке периодически меняется, поэтому у вас результат может оказаться несколько иным.
Имя Значение