Для доступа к 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-наборов из принятого ответа, необходимо предоставить соок1е-контейнер с запросом. И для этой цели в классеHttpWebRequestопределяется свойствоCookieContainer,приведенное ниже.
public CookieContainer CookieContainer { get; set; }
В классеCookieContainerпредоставляются различные поля, свойства и методы, позволяющие хранить сооЫе-наборы. По умолчанию свойствоCookieContainerсодержит пустое значение. Для того чтобы воспользоваться cookie-наборами, необходимо установить это свойство равным экземпляру классаCookieContainer.Во многих приложениях свойствоCookieContainerне применяется непосредственно, а вместо него из принятого ответа составляется и затем используется коллекция типаCookieCollection.СвойствоCookieContainerпросто обеспечивает внутренний механизм сохранения cookie-наборов.
В приведенном ниже примере программы отображаются имена и значения cookie-наборов, получаемых из источника по URI, указываемому в командной строке. Следует, однако, иметь в виду, что cookie-наборы используются не на всех веб-сайтах, поэтому нужно еще найти такой веб-сайт, который поддерживает cookie-наборы.
/* Пример проверки cookie-наборов.
Для того чтобы проверить, какие именно cookie-наборы используются на веб-сайте, укажите его имя в командной строке.
Так, если назвать эту программу CookieDemo, то по команде
CookieDemohttp://msn.com