Путь и запрос: /somefile.txt?SomeQuery



 

 

Доступ к дополнительной информации, получаемой в ответ по протоколу HTTP

 

С помощью сетевых средств, имеющихся в классе HttpWebResponse, можно получить доступ к другой информации, помимо содержимого указываемого ресурса. К этой информации, в частности, относится время последней модификации ресурса, а также имя сервера. Она оказывается доступной с помощью различных свойств, связанных с получаемым ответом. Все эти свойства, включая и те что, определены в классе WebResponse, сведены в табл. 26.5. В приведенных далее примерах программ демонстрируется применение этих свойств на практике.

 

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

Свойство - Описание

 

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);


Дата добавления: 2019-02-12; просмотров: 267; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!