Герберт Шилдт - C# 4.0 полное руководство - 2011
- Название:C# 4.0 полное руководство - 2011
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание
C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
public Uri(string uriString)
public Uri(Uri baseUri, string relativeUri)
В первой форме конструктора объект класса Uri создается по идентификатору URI, заданному в виде строки uriString. А во второй форме конструктора он создается по относительному URI, заданному в виде строки relativeUri относительно абсолютного URI, обозначаемого в виде объекта baseUri типа Uri. Абсолютный URI определяет полный адрес URI, а относительный URI — только путь к искомому ресурсу.
В классе Uri определяются многие поля, свойства и методы, оказывающие помощь в управлении идентификаторами URI или в получении доступа к различным частям URI. Особый интерес представляют приведенные ниже свойства.
Свойство
Описание
public
string Host { get; }
Получает имя сервера
public
string LocalPath { get; }
Получает локальный путь к файлу
public
string. PathAndQuery { get; }
Получает абсолютный путь и строку запроса
public
int Port { get; }
Получает номер порта для указанного протокола. Так, для протокола HTTP номер порта равен 80
public
string Query { get; }
Получает строку запроса
public
string Scheme { get; }
Получает протокол
Перечисленные выше свойства полезны для разделения URI на составные части. Применение этих свойств демонстрируется в приведенном ниже примере программы.
// Пример применения свойств из класса Uri.
using System; using System.Net;
class UriDemo {
static void Main() {
Uri sample = new Uri(" http://HerbSchildt.com/somefile.txt?SomeQuery ");
Console.WriteLine("Хост: " + sample.Host);
Console.WriteLine("Порт: " + sample.Port);
Console.WriteLine("Протокол: " + sample.Scheme);
Console .WriteLine ("Локальный путь: 11+ sample. LocalPath) ;
Console.WriteLine("Запрос: " + sample.Query);
Console.WriteLine("Путь и запрос: " + sample.PathAndQuery);
}
}
Эта программа дает следующий результат.
Хост: HerbSchildt.com Порт: 80 Протокол: http
Локальный путь: /somefile.txt Запрос: ?SomeQuery
Путь и запрос: /somefile.txt?SomeQuery
Доступ к дополнительной информации, получаемой в ответ по протоколу HTTP
С помощью сетевых средств, имеющихся в классе HttpWebResponse, можно получить доступ к другой информации, помимо содержимого указываемого ресурса. К этой информации, в частности, относится время последней модификации ресурса, а также имя сервера. Она оказывается доступной с помощью различных свойств, связанных с получаемым ответом. Все эти свойства, включая и те что, определены в классе WebResponse, сведены в табл. 26.5. В приведенных далее примерах программ демонстрируется применение этих свойств на практике.
Свойство
Описание
public
string CharacterSet { get; }
Получает название используемого набора символов
public { get;
string ContentEncoding}
Получает название схемы кодирования
public
long ContentLength { get; }
Получает длину принимаемого содержимого. Если она недоступна, свойство имеет значение -1
public
string ContentType { get; }
Получает описание содержимого
public
CookieCollection Cookies
Получает или устанавливает список cookie-
{ get;
set; }
наборов, присоединяемых к ответу
public
WebHeaderCollection
Получает коллекцию заголовков, присоединяе
Headers! get; }
мых к ответу
public
bool IsFromCache { get; }
Принимает логическое значение true,если запрос получен из кеша. А если запрос доставлен по сети, то принимает логическое значение false
public
bool
Принимает логическое значение true,если
IsMutuallyAuthenticated { get; }
клиент и сервер опознают друг друга, а иначе — принимает логическое значение false
public DateTime LastModified { get; }
Получает время последней модификации ресурса
public
string Method { get; }
Получает строку, которая задает способ ответа
public
Version ProtocolVersion
Получает объект типа Version,описываю
{ get;
}
щий версию протокола HTTP, используемую в транзакции
public
Uri ReponseUri { get; }
Получает URI, по которому был сформирован ответ. Этот идентификатор может отличаться от запрашиваемого, если ответ был переадресован по другому URI
public
string Server { get; }
Получает строку, обозначающую имя сервера
public
HttpStatusCode StatusCode
Получает объект типа HttpStatusCode,опи
{ get;
}
сывающий состояние транзакции
public
string StatusDescription
Получает строку, обозначающую состояние
{ get;
}
транзакции в удобочитаемой форме
Доступ к заголовку
Для доступа к заголовку с информацией, получаемой в ответ по протоколу HTTP, служит свойство Headers, определенное в классе HttpWebResponse.
public WebHeaderCollection Headers{ get; }
Заголовок протокола HTTP состоит из пар "имя-значение", представленных строками. Каждая пара "имя-значение" хранится в коллекции класса WebHeaderCollection. Эта коллекция специально предназначена для хранения пар "имя-значение" и применяется аналогично любой другой коллекции (подробнее об этом см. в главе 25). Строковый массив имен может быть получен из свойства AllKeys, а отдельные значения — по соответствующему имени при вызове метода Get Values () . Этот метод возвращает массив строк, содержащий значения, связанные с заголовком, передаваемым в качестве аргумента. Метод Get Values () перегружается, чтобы принять числовой индекс или имя заголовка.
В приведенной ниже программе отображаются заголовки, связанные с сетевым ресурсом, доступным по адресу www. McGraw-Hill . com.
// Проверить заголовки.
using System; using System.Net;
class HeaderDemo { static void Main() {
// Создать объект запроса типа WebRequest по указанному URI.
HttpWebRequest req = (HttpWebRequest)
Интервал:
Закладка: