Урок 21 Web-запросы

Материал из Oktell
Перейти к: навигация, поиск
Наверх К предыдущему уроку

В этом уроке рассказывается про использование компонентов "Web-запрос" и "Парсер".


Введение

Часто при обработке звонка возникает необходимость обращения к внешним сервисам с целью получения дополнительной информации по абоненту. Например, это может быть запросом в Российский план нумерации для того, чтобы узнать из какого региона звонит клиент. Или обращение в CRM-систему для получения имени ответственного менеджера. Описанные задачи решаются с помощью запросов к соответствующим web-системам. Подобным образом решается также интересная задача по распознаванию речи абонента в момент звонка и выполнение, так называемой, голосовой маршрутизации для составления заявок.

Web-запросы могут выполняться не только при звонке абонента. Это может быть каким-либо служебным действием, например один раз в час Oktell может выполнять запрос на получение курса доллара по отношению к рублю или в сервис прогноза погоды для получения информации о температуре на улице в ближайший час.

Внешняя система, получив запрос, выполняет необходимые действия и возвращает обратно сообщение с результатом. Получив такой ответ от внешней системы, возникает потребность в его разборе. Синтаксический анализ полученных сообщений и выделение нужной информации называется парсингом. В Oktell для этого предназначен отдельный компонент "Парсер", который может анализировать XML или JSON структуры, а также использовать язык "Регулярных выражений".

Разберемся подробнее с работой web-запросов на примере.


Использование Web-запросов в сценариях

Задача: При входящем звонке по номеру телефона определить из какого региона звонит абонент и маршрутизировать звонок в соответствиии с полученной информацией.

Сценарий выглядит следующим образом:


Урок21-001.png


Разберем компоненты сценария поподробнее.

  • Компонент "CallerID" . Определяет телефонный номер абонента и записывает его в переменную num. В компоненте переменной "num(строковая)" присваивается значение функции "Номер абонента (CallerId)".
  • Компонент "Запрос в Россвязь". Отправляет Web-запрос в сервис Россвязи для определения региона по номеру абонента.
  • В поле "Подключение" введите адрес сервиса, при необходимости укажите прокси-сервер и базовую авторизацию.


Урок21-002.png


  • В поле "Тип контента" вводится заголовок contenttype, которая подставляется в запрос. По умолчанию, используется application/x-www-form-urlencoded.
  • В поле "Метод" вы можете выбрать HTTP-метод передачи запроса.

Запрос GET передает данные серверу, используя URL. Все необходимые параметры перечисляются непосредственно в строке подключения через знак вопроса "?". Для разделения параметров используется символ "&". Длина URL ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать с помощью GET.

ВНИМАНИЕ: Строка подключения в компоненте всегда отправляется в формате UTF-8.

Пример GET-запроса (передача параметров param1 и param2, имеющих значения value1 и value2 соответственно):

http://www.oktell.ru?param1=value1&param2=value2

Запрос POST передает данные серверу, используя тело HTTP запроса. POST может отправлять гораздо большие объемы данных. Лимит устанавливается веб-сервером и обычно равен около 2MB. Все необходимые параметры перечисляются в поле "Запрос", для разделения параметров используются используется символ "&".

В отличии, от метода GET, POST может отправлять данные не только в кодировке UTF-8. В поле "Кодировка запроса" вы можете выбрать Windows-1251, Unicode и другие форматы.

Несмотря на то, что передача данных методом GET проходит быстрее, передача данных методом POST более безопасна, так как секретные данные (например пароль) не отображаются напрямую для пользователя (в отличии от URL, который виден почти всегда).

Для большей наглядности, на следующем рисунке показан пример настройки компонента для отправки запроса с помощью методов GET и POST. В примере, на сервер http://www.oktell.ru отправляются два параметра param1 и param2 со значениями value1 и value2 соответственно:

Урок21-003.png



  • Компонент "Парсер региона".
  • Компонент "Ошибка".
  • Компонент "Ответ".
  • Компонент "Москва и Московская область?".
  • Компонент "По Москве".
  • Компонент "Татарстан?".
  • Компонент "По Татарстану".
  • Компонент "По остальным регионам".


Наверх К предыдущему уроку