Читать «C# 4.0: полное руководство» онлайн - страница 661
Герберт Шилдт
В приведенной ниже программе отображаются заголовки, связанные с сетевым ресурсом, доступным по адресу 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();
}
}
Ниже приведен полученный результат. Не следует забывать, что информация в заголовке периодически меняется, поэтому у вас результат может оказаться несколько иным.
Имя Значение
X-Server-Name va-c1-r4-u27-b1
X-Cache MISS from proxy.ukr.zal
X-Cache-Lookup MISS from proxy.ukr.zal:3129
Connection keep-alive
Content-Length 4442
Content-Type text/html;charset=utf-8
Date Wed, 27 Jul 2016 09:01:26 GMT
Last-Modified Mon, 25 Jul 2016 11:57:20 GMT
Server Apache
(В оригинале приведено:)
Имя Значение
Transfer-encoding chunked
Content-Type text/html
Date Sun, 06 Dec 2009 20:32:06 GMT
Server Sun-ONE-Web-Server/6.1
Доступ к cookie-наборам
Для доступа к cookie-наборам, получаемым в ответ по протоколу HTTP, служит свойство Cookies
, определенное в классе HttpWebResponse
. В cookie-Ha6opax содержится информация, сохраняемая браузером. Они состоят из пар "имя-значение" и упрощают некоторые виды доступа к веб-сайтам. Ниже показано, каким образом определяется свойство Cookies
.
public CookieCollection Cookies { get; set; }
В классе CookieCollection
реализуются интерфейсы ICollection
и IEnumerable
, и поэтому его можно использовать аналогично классу любой другой коллекции (подробнее об этом см. в главе 25). У этого класса имеется также индексатор, позволяющий получать cookie-Ha6op по указанному индексу или имени.
В коллекции типа CookieCollection
хранятся объекты класса Cookie
. В классе Cookie
определяется несколько свойств, предоставляющих доступ к различным фрагментам информации, связанной с cookie-набором. Ниже приведены два свойства, Name
и Value
, используемые в примерах программ из этой главы.
public string Name { get; set; }
public string Value { get; set; }
Имя cookie-Ha6opa содержится в свойстве Name
, а его значение — в свойстве Value
.
Для того чтобы получить список cookie-наборов из принятого ответа, необходимо предоставить сооkiе-контейнер с запросом. И для этой цели в классе HttpWebRequest
определяется свойство CookieContainer
, приведенное ниже.