Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Console.WriteLine("Локальный путь: 11 + sample. LocalPath") ;
Console.WriteLine("Запрос: " + sample.Query);
Console.WriteLine("Путь и запрос: " + sample.PathAndQuery);
}
}
Эта программа дает следующий результат.
Хост: herbschildt.com
Порт: 80
Протокол: http
Локальный путь: 11 + sample. LocalPath
Запрос: ?SomeQuery
Путь и запрос: /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);
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-наборам, получаемым в ответ по протоколу 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; }
Интервал:
Закладка: