Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Ради краткости и ясности в программах большинства примеров из этой главы отсутствует полноценная обработка исключений. Но в реальных приложениях она просто необходима.




Класс Uri

Как следует из табл. 26.1, метод WebRequest. Create () существует в двух вариантах. В одном варианте он принимает идентификатор URI в виде строки. Именно этот вариант и был использован в предьтдугцих примерах программ. А во втором варианте этот метод принимает идентификатор URI в виде экземпляра объекта класса Uri, определенного в пространстве имен System. Класс Uri инкапсулирует идентификатор URL Используя класс Uri, можно сформировать URI, чтобы затем передать этот идентификатор методу Create (). Кроме того, идентификатор URI можно разделить на части. Для выполнения многих простых операций в Интернете класс Uri малопригоден. Тем не менее он может оказаться весьма полезным в более сложных ситуациях сетевого подключения к Интернету.

В классе Uri определяется несколько конструкторов. Ниже приведены наиболее часто используемые конструкторы этого класса.

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 () перегружается, чтобы принять числовой индекс или имя заголовка.





Поделиться с друзьями:


Дата добавления: 2016-12-03; Мы поможем в написании ваших работ!; просмотров: 524 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2370 - | 2121 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.