Опубликован: 01.03.2010 | Уровень: специалист | Доступ: платный
Дополнительный материал 1:

Практикум

< Лекция 7 || Дополнительный материал 1: 12345678910111213

Работа с веб сервисами

Задание

Задачей данного занятия является использование веб-сервиса Аэрофлота для создания приложения Silverlight, дающего возможность просматривать авиа рейсы прибывающие и вылетающие для заданного аэропорта мира и на заданную дату. Задача состоит из этапов:

  • Создание нового проекта Silverlight
  • Подключение к веб-сервису из приложения Silverlight по адресу в Интернете http://webservices.aeroflot.ru/flightstatus.asmx?WSDL
  • Создание элементов управления
    • ComboBox - для отображения списка аэропортов
    • ComboBox - для отображения списка дат, на которые доступна информация о рейсах
    • Button - кнопка начала поиска
    • DataGrid - табличный элемент управления для отображения вылетающих рейсов
    • DataGrid - табличный элемент управления для отображения прибывающих рейсов
    • TextBlock - для подписей к DataGrid
  • Асинхронный запрос к веб-сервису для получения списка аэропортов
  • Асинхронный запрос к веб-сервису для получения списка дат
  • Асинхронный запрос к веб-сервису для получения списка вылетающих рейсов
  • Асинхронный запрос к веб-сервису для получения списка прибывающих рейсов
  • Отображение данных списков в соответствующих элементах управления

Для выполнения данной работы необходимо установленное программное обеспечение (см. "Обзор современных средств разработки интерактивных приложений" "Введение"), а также, доступ в Интернет.

Описание веб-сервиса "Справка о рейсе/Табло аэропортов"

Данный сервис позволяет получать информацию о текущем состоянии рейсов, просматривать табло аэропортов. Сервис предоставляет следующий набор функций:

  1. AirportList - список аэропортов
  2. AirportInfo - информация об аэропорте по его коду
  3. DateList - список дат, за которые есть информация
  4. Arrival/Departure - информация о прибытии/отправлении рейсов
  5. FlightSearch - поиск рейса по номеру
  6. FlightInfo - подробная информация о текущем состоянии рейса (по ключу, полученному в результате вызова Arrival/Departure/FlightSearch ).

AirportList - Список аэропортов. Возвращается список структур, состоящих из следующих полей:

  • city - город
  • name - название аэропорта
  • code - код аэропорта

AirportInfo - Информация об аэропорте. Входные параметры:

  • code - код аэропорта

Возвращается структура, состоящая из следующих полей:

  • city - город
  • name - название аэропорта
  • code - код аэропорта

Arrival - Табло прилета. Входные параметры:

  • code - код аэропорта
  • date - дата
  • order_field - поле (' airport ', ' sched ', ' plan ', ' company ', ' flight_no '), по которому идет сортировка
  • order - направление сортировки (' desc ', ' asc ')

Возвращается список структур, состоящих из следующих полей:

  • flt_pk - код рейса
  • company - код авиакомпании
  • flight_no - номер рейса
  • airport_inter - название промежуточного аэропорта
  • airport - название аэропорта отправления
  • sched - время прибытия по расписанию
  • plan - планируемое время прибытия
  • fact - фактическое время прибытия
  • calc - расчетное время прибытия
  • estimated arrival time
  • real - время посадки
  • union_flight_no - номер, объединенного рейса
  • status - статус рейса

DateList - Список дат, за которые есть данные в системе

Departure - Табло вылета. Входные параметры:

  • code - код аэропорта
  • date - дата
  • order_field - поле (' airport ', ' sched ', ' plan ', ' company ', ' flight_no '), по которому идет сортировка
  • order - направление сортировки (' desc ', ' asc ')

Возвращается список структур, состоящих из следующих полей:

  • flt_pk - код рейса
  • company - код авиакомпании
  • flight_no - номер рейса
  • airport_inter - название промежуточного аэропорта
  • airport - название аеропорта назначения
  • sched - время вылета по расписанию
  • plan - планируемое время вылета
  • fact - фактическое время вылета
  • real - время взлета
  • union_flight_no - номер, объединенного рейса
  • status - статус рейса
  • is_check - признак регистрации ( 1 - идет, 0 - нет)
  • is_board - признак посадки в самолет ( 1 - идет, 0 - нет)

FlightInfo - Подробная информация о рейсе. Входные параметры:

  • flt_pk - код рейса

Возвращается список структур, состоящих из следующих полей:

  • company - код авиакомпании
  • flight_no - номер рейса
  • flight_type - тип рейса
  • aircraft_type - тип самолета
  • bort - номер самолета (борта)
  • seats_f - количество мест первого класса
  • seats_c - количество мест бизнес-класса
  • seats_y - количество мест эконом-класса
  • sched_dep - время вылета по расписанию
  • sched_arr - время прибытия по расписанию
  • plan_dep - планируемое время вылета
  • plan_arr - планируемое время прибытия
  • fact_dep - фактическое время вылета
  • fact_arr - фактическое время прибытия
  • real_dep - время взлета
  • real_arr - время посадки
  • calc - расчетное время прибытия
  • status - статус рейса
  • city_dep - город отправления
  • airport_dep - название аеропорта отправления
  • code_dep - код аэропорта отправления
  • terminal_dep - номер терминала аэропорта отправления
  • city_arr - город назначения
  • airport_arr - название аеропорта назначения
  • code_arr - код аэропорта назначения
  • terminal_arr - номер терминала аэропорта назначения

FlightSearch - Поиск рейсов. Входные параметры:

  • flight_no - номер рейса
  • flight number

Возвращается список структур, состоящих из следующих полей:

  • flt_pk - код рейса
  • company - код авиакомпании
  • flight_no - номер рейса
  • airport_dep - название аэропорта отправления
  • airport_inter - название промежуточного аэропорта
  • airport_arr - название аеропорта назначения
  • sched_dep - время вылета по расписанию

Адрес данного веб-сервиса:

http://webservices.aeroflot.ru/flightstatus.asmx?WSDL

Создание приложения Silverlight и подключение к веб-сервису

Теперь создадим приложение Silverlight, а также веб-приложение для отображения приложения Silverlight. Для этого последовательно выполняем шаги, изображенные на рис.5.1 - рис. 5.4. В Visual Studio 2008 создаем новый проект, указываем шаблон "Silverlight Application", вводим название и каталог будущего проекта.

Создание проекта Silverlight

увеличить изображение
Рис. P.32. Создание проекта Silverlight

Во время работы мастера отвечаем на вопрос, где будет "хоститься" новое приложение. Указываем, что на новом веб-сервере. Visual Studio создаст по шаблону простейшее веб-приложение ASP.NET и разместит на его странице необходимые ссылки на приложение Silverlight.

Создание веб проекта

увеличить изображение
Рис. P.33. Создание веб проекта

В результате работы мастера Visual Studio будет создано решение (см. рис.5.3)

Внешний вид  нового проекта

увеличить изображение
Рис. P.34. Внешний вид нового проекта

Далее кликаем на проекте Silverlight правой клавишей мыши и выбираем "Add Service Reference". В поле "Address" вводим адрес веб-сервиса в интернете: http://webservices.aeroflot.ru/flightstatus.asmx?WSDL. Сразу увидим контракт, предлагаемый веб-сервисом. Вводим пространство имен для данной ссылки.

Подключение к веб-сервису Аэрофлота

увеличить изображение
Рис. P.35. Подключение к веб-сервису Аэрофлота
< Лекция 7 || Дополнительный материал 1: 12345678910111213
Иван Циферблат
Иван Циферблат
Россия, Таганрог, 36, 2000