Герберт Шилдт - C# 4.0 полное руководство - 2011
- Название:C# 4.0 полное руководство - 2011
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание
C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В среде выполнения .NET Runtime протоколы HTTP, HTTPS и FTP определяются автоматически. Так, если указать идентификатор URI с префиксом HTTP, то будет автоматически получен HTTP-совместимый класс, который поддерживает протокол HTTP. А если указать идентификатор URI с префиксом FTP, то будет автоматически получен FTP-совместимый класс, поддерживающий протокол FTP.
При сетевом подключении к Интернету чаще всего применяется протокол HTTP, поэтому именно он и рассматривается главным образом в этой главе. (Тем не менее аналогичные приемы распространяются и на все остальные поддерживаемые протоколы.) Протокол HTTP поддерживается в классах HttpWebRequest и HttpWebResponse. Эти классы наследуют от классов WebRequest и WebResponse, а кроме того, имеют собственные дополнительные члены, применимые непосредственно к протоколу HTTP.
В пространстве имен System.Net поддерживается как синхронная, так и асинхронная передача данных. В Интернете предпочтение чаще всего отдается синхронным транзакциям, поскольку ими легче пользоваться. При синхронной передаче данных пользовательская программа посылает запрос и затем ожидает ответа от сервера. Но для некоторых разновидностей высокопроизводительных приложений более подходящей оказывается асинхронная передача данных. При таком способе передачи данных пользовательская программа продолжает обработку данных, ожидая ответа на переданный запрос. Но организовать асинхронную передачу данных труднее. Кроме того, не во всех программах можно извлечь выгоды из асинхронной передачи данных. Например, когда требуется получить информацию из Интернета, то зачастую ничего другого не остается, как ожидать ее. В подобных случаях потенциал асинхронной передачи данных используется не полностью. Вследствие того что синхронный доступ к Интернету реализуется проще и намного чаще, именно он и будет рассматриваться в этой главе.
Далее речь пойдет прежде всего о классах WebRequest и WebResponse, поскольку именно они положены в основу сетевых программных средств, доступных в пространстве имен System.Net.
Класс WebReques t
Класс WebRequest управляет сетевым запросом. Он является абстрактным, поскольку в нем не реализуется конкретный протокол. Тем не менее в нем определяются те методы и свойства, которые являются общими для всех сетевых запросов. В табл. 26.1 сведены методы, определенные в классе WebRequest и поддерживающие синхронную передачу данных, а в табл. 26.2 — свойства, объявляемые в классе WebRequest. Устанавливаемые по умолчанию значения свойств задаются в производных классах. Открытые конструкторы в классе WebRequest не определены.
Для того чтобы отправить запрос по адресу URI, необходимо сначала создать объект класса, производного от класса WebRequest и реализующего требуемый протокол. С этой целью вызывается статический метод Create (), определенный в классе WebRequest. Метод Create () возвращает объект класса, наследующего от класса WebRequest и реализующего конкретный протокол.
Таблица 26.1. Методы, определенные в классе WebRequest
Метод
Описание
public static WebRequest
Создает объект типа WebRequestдля иден
Create(string
тификатора URI, указываемого в строке
requestUriString)
requestUriString. Возвращаемый объект реализует протокол, заданный префиксом идентификатора URI. Следовательно, возвращаемый объект будет экземпляром класса, призводного от класса WebRequest.Если затребованный протокол недоступен, то генерируется исключение NotSupportedException.А если недействителен указанный формат идентификатора URI, то генерируется исключение UriFormatException
Метод
Описание
public static WebRequest Create(Uri requestUri)
public virtual Stream GetRequestStream() public virtual WebResponse GetResponse()
Создает объект типа WebRequestдля идентификатора URI, указываемого с помощью параметра reques tUri. Возвращаемый объект реализует протокол, заданный префиксом идентификатора URI. Следовательно, возвращаемый объект будет экземпляром класса, призводного от класса WebRequest.Если затребованный протокол недоступен, то генерируется исключение NotSupportedExceptionВозвращает поток вывода, связанный с запрошенным ранее идентификатором URI Отправляет предварительно сформированный запрос и джидает ответа. Получив ответ, возвращает его в виде объекта класса WebReponse.Этот объект используется затем в программе для получения информации по указанному адресу URI
Таблица 26.2. Свойства, определенные в классе WebRequest
Свойство
Описание
public AuthenticationLevel
Получает или устанавливает уровень аутентифи
AuthenticationLevel( get; set; }
кации
public virtual
Получает или устанавливает правила использо
RequestCachePolicy CachePolicy
вания кеша, определяющие момент получения
{ get; set; }
ответа из кеша
public virtual string
Получает или устанавливает имя группы подклю
ConnectionGroupName { get;
чения. Группы подключения представляют собой
set; }
способ создания ряда запросов. Они не нужны для простых транзакций в Интернете
public virtual long
Получает или устанавливает длину передаваемо
ContentLength { get; set; }
го содержимого
public virtual string
Получает или устанавливает описание переда
ContentType { get; set; }
ваемого содержимого
public virtual Icredentials
Получает или устанавливает мандат, т.е. учетные
Credentials { get; set; }
данные пользователя
public static
Получает или устанавливает правила использо
RequestCachePolicy
вания кеша по умолчанию, определяющие мо
DefaultCachePolicy { get; set; }
мент получения ответа из кеша
public static IWebProxy
Получает или устанавливает используемый по
DefaultWebProxy { get; set; }
умолчанию прокси-сервер
public virtual
Получает или устанавливает коллекцию заголовков
WebHeaderCollection Headers{
get; set; }
public TokenlmpersonationLevel
Получает или устанавливает уровень анонимно
ImpersonationLevel { get; set; }
го воплощения
Свойство
Описание
public virtual string Method { get; set; } public virtual bool PreAuthenticate { get; set; }
Интервал:
Закладка: