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

Класс HttpResponse

Ниже приведен ASP.NET-код на C++, который выполняется после щелчка на кнопке Make Reservation (Забронировать).

void cmdMakeReservation_Click(
Object *sender, EventArgs *e)
{
HttpUtility *utility = new HttpUtility;
String *query = String:.Concat (// Строка
"City=", utility › UrlEncode(txtCity › Text)); // Город
query = String::Format(
// запрос = Строка:: Формат ("{0}&Hotel={l}",
query, utility › UrlEncode(txtHotel › Text));
query = String::Format(
// запрос = Строка:: Формат ("{0}&Date={l}",
query, utility › UrlEncode(txtDate-XText));
query = String::Format(// запрос = Строка:: Формат ("{0}&NumberDays={1}",
query, utility › UrlEncode(txtNumberDays › Text));
Response › Redirect(String::Concat(
// Ответ › Переадресовать (Строка:: Concat (
"Reservation!.aspx?", query)); // запрос
}

Метод cmdMakeReservation_Click строит строку запроса. Эта строка присоединяется к унифицированному указателю информационного ресурса (URL) страницы Reservation1.aspx. От унифицированного указателя информационного ресурса (URL) ее отделяет символ ?. В качестве разделителя элементов строки запроса используется символ &. Для кодирования отдельных элементов используется метод HttpUtility::UrlEncode. Символы "слэш" (в дате) и пробелы, например в названии "San Jose" кодируются отдельно.

Если щелкнуть на кнопке, будет вызван метод Page_Load класса Reservationl, отображающий страницу, с помощью которой можно забронировать место в гостинице. Этот метод считывает название города, название гостиницы, дату и количество дней, которое вы планируете провести в гостинице, а затем отображает полученные данные на возвращаемой Web-странице.

void Page_Load(Object *sender, EventArgs *e)
{
Page *p = dynamic_cast<Page *>(sender);
// Страница *р = dynamic_cast <Страница *> (отправитель);
HttpRequest *request = p › get_Request();
HttpResponse *response = p › get_Response();
response › Write("Making reservation for…");
// ответ › Запись ("Делаю резервирование для… "};
response › Write("<br>"); // ответ › Запись
String *city = request › Params › get_Item("City");
// Строка *city = запрос › Params › get_Item ("Город");
response › Write(String::Concat("City = ", city));
// ответ › Запись (Строка:: Concat ("Город = ", город));
response › Write("<br>"); // ответ › Запись
String *hotel = request › Params › get_Item("Hotel");
// Строка *hotel = запрос › Params › get_Item ("Гостиница");
response › Write(String::Concat("Hotel = ", hotel));
// ответ › Запись (Строка:: Concat
// "Гостиница = ", гостиница));
response › Write("<br>"); // ответ › Запись
String *strDate = request › Params › get_Item("Date");
// Строка *strDate = запрос › Params › get_Item ("Дата");
response › Write(String::Concat("Date = ", strDate));
// ответ › Запись (Строка:: Concat ("Дата = ", strDate));
response › Write("<br>"); // ответ › Запись
String *strDays = // Строка
request › Params › get_Item("NumberDays");
response › Write(String::Concat(
// ответ › Запись (Строка:: Concat ("NumberDays = ", strDays));
response › Write("<br>"); // ответ › Запись
}

Строку запроса можно увидеть в адресной строке браузера. На рис. 10.15. показана выходная информация, выводимая браузером (На самом деле, наша программа не бронирует место в гостинице, она всего лишь выводит переданные ей параметры).

Иллюстрированный самоучитель по Architecture .NET › ASP.NET и Web-формы › Класс HttpResponse
Рис. 10.15. Вот что выводит браузер после бронирования места в гостинице

Включите трассировку. Вывод трассировки продемонстрирует идеи, которые мы обсудили, когда говорили о программировании запросов и ответов в Web-программах. В частности, стоит изучить коллекцию Query String, показанную на рис. 10.16.

Иллюстрированный самоучитель по Architecture .NET › ASP.NET и Web-формы › Класс HttpResponse
Рис. 10.16. Строка запроса используется для того, чтобы передать параметры при переназначении

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.