Читать «C# 4.0: полное руководство» онлайн - страница 662
Герберт Шилдт
public CookieContainer CookieContainer { get; set; }
В классе CookieContainer
предоставляются различные поля, свойства и методы, позволяющие хранить сооkiе-наборы. По умолчанию свойство CookieContainer
содержит пустое значение. Для того чтобы воспользоваться cookie-наборами, необходимо установить это свойство равным экземпляру класса CookieContainer
. Во многих приложениях свойство CookieContainer
не применяется непосредственно, а вместо него из принятого ответа составляется и затем используется коллекция типа CookieCollection
. Свойство CookieContainer
просто обеспечивает внутренний механизм сохранения cookie-наборов.
В приведенном ниже примере программы отображаются имена и значения cookie-наборов, получаемых из источника по URI, указываемому в командной строке. Следует, однако, иметь в виду, что cookie-наборы используются не на всех веб-сайтах, поэтому нужно еще найти такой веб-сайт, который поддерживает cookie-наборы.
/* Пример проверки cookie-наборов.
Для того чтобы проверить, какие именно cookie-наборы используются на веб-сайте, укажите его имя в командной строке.
Так, если назвать эту программу CookieDemo, то по команде
CookieDemo http://msn.com
отобразятся cookie-наборы с веб-сайта по адресу www.msn.com. */
using System;
using System.Net;
class CookieDemo {
static void Main(string[] args) {
if (args.Length != 1) {
Console.WriteLine("Применение: CookieDemo <uri>");
return;
}
// Создать объект запроса типа WebRequest по указанному URI.
HttpWebRequest req = (HttpWebRequest)
WebRequest.Create(args[0]);
// Получить пустой контейнер.
req.CookieContainer = new CookieContainer();
// Отправить сформированный запрос и получить на него ответ.
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
// Отобразить cookie-наборы.
Console.WriteLine("Количество cookie-наборов: " +
resp.Cookies.Count);
Console.WriteLine("{0,-20}{1}", "Имя", "Значение");
for (int i = 0; i < resp.Cookies.Count; i++)
Console.WriteLine("{0, -20}{1}",
resp.Cookies[i].Name,
resp.Cookies[i].Value);
// Закрыть ответный поток,
resp.Close();
}
}
Применение свойства LastModified
Иногда требуется знать, когда именно сетевой ресурс был обновлен в последний раз. Это нетрудно сделать, пользуясь сетевыми средствами класса HttpWebResponse
, среди которых определено свойство LastModified
, приведенное ниже.
public DateTime LastModified { get; }
С помощью свойства LastModified
получается время обновления содержимого сетевого ресурса в последний раз.
В приведенном ниже примере программы отображаются дата и время, когда был в последний раз обновлен ресурс, указываемый по URI в командной строке.
/* Использовать свойство LastModified.
Для того чтобы проверить дату последнего обновления веб-сайта, введите его URI в командной строке. Так, если назвать эту программу LastModifiedDemo, то для проверки даты последней модификации веб-сайта по адресу введите команду