Иллюстрированный самоучитель по Architecture .NET

Программирование запросов и ответов. Класс HttpRequest.

Архитектура элементов управления сервера строится на верхнем слое более фундаментальной архитектуры обработки данных, которую можно назвать архитектурой запросов и ответов. Понимание запросов и ответов протокола передачи гипертекстовых файлов HTTP поможет нам получить целостное представление о технологии ASP.NET. Кроме того, при программировании иногда возникают такие ситуации, когда использование запросов и ответов является естественным подходом.


Пространство имен System::Web (Система Сеть) содержит полезный класс HttpRequest. Данный класс используется для считывания различных значении, которые клиент отсылает в запросе по протоколу передачи гипертекстовых фантов HTTP Эти значения, принимаемые по протоколу передачи гипертекстовых фантов HTTP, затем будут использованы классическими (те использующими общий шлюзовой ишер-фейс CGI (Common Gateway Interface)) программами или программами, использующими интерфейс прикладного программирования Internet-сервера ISAPI (Internet Server API), которые обрабатывают Web-запрос.

На этой основе строится обработка данных на более высоком уровне. В табл. 10.1 приведены некоторые наиболее часто используемые свои-ства класса HttpRequest. Если вы знакомы с протоколом передачи гипертекстовые файлов HTTP, смысл этих свойств должен быть вам понятен. Исчерпывающая инфор мация об этих и других свойствах класса HttpRequest содержится в документации по .NET Framework.

Таблица 10.1. Общедоступные свойства экземпляра класса HttpReguest.

Свойство Смысл
AcceptTypes Строковый массив принимаемых клиентом MIME-типов
Browser (Браузер) Информация о возможностях браузера клиента
ContentLength Длина (в байтах) содержимого, отосланного клиентом
Cookies (Небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя) Коллекция небольших фрагментов данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемых сервером на машине пользователя (cookies), отосланных клиентом
Form (Форма) Коллекция переменных формы
Headers (Заголовки) Коллекция заголовков для протокола передачи гипертекстовых файлов HTTP
HttpMethod Метод передачи по протоколу передачи гипертекстовых файлов HTTP, используемый клиентом (например, GЕТ (Получить) или POST (Отправить почтовое сообщение))
Params Объединенная коллекция, которая состоит из элементов Querystnng, Form (Форма), Server-Variables и Cookies (Небольшие фрагменты данных о предыстории обращений конкретного пользователя к конкретному Web-серверу, автоматически создаваемые сервером на машине пользователя)
Path (Путь) Виртуальный запрос текущего пути
OueryString Коллекция строковых переменных запроса, посылаемого по протоколу передачи гипертекстовых файлов HTTP
ServerVanables Коллекция переменных Web-сервера

Свойство Request (Запрос) класса Page (Страница) возвращает объект HttpRequest. Из свойств объекта HttpRequest можно извлечь любую необходимую информацию. Например, следующий код (этот код не содержится ни в одном примере) определяет длину (в байтах) содержимого, отосланного клиентом, и записывает поточную информацию в объект Response (Ответ). Затем эта информация отображается в окне-браузера.

Page *p = dynamic_cast<Page *>(sender);
// Страница *р = dynamic_cast <Страница *> (отправитель);
HttpRequest *request = p › get_Request();
int length = request › ContentLength; // длина
HttpResponse *response = p › get_Response();
response › Write(String::Format(// ответ › Запись (Строка:: Формат
"ContentLength = {0}<br>", _box(length))); // длина
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.