Урок 21 Web-запросы — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 43: Строка 43:
 
:*В поле "Метод" вы можете выбрать HTTP-метод передачи запроса.  
 
:*В поле "Метод" вы можете выбрать HTTP-метод передачи запроса.  
  
Метод '''GET''' передает данные серверу используя URL. Все необходимые параметры перечисляются непосредственно в строке подключения через знак вопроса "?". Для разделения переменных используется символ "&". Пример GET-запроса (передача параметров param1 и param2, имеющих значения value1 и value2 соответственно):
+
Запрос '''GET''' передает данные серверу, используя URL. Все необходимые параметры перечисляются непосредственно в строке подключения через знак вопроса "'''?'''". Для разделения параметров используется символ "'''&'''". Длина URL ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать с помощью GET.
 +
 
 +
<span style="color:red">ВНИМАНИЕ: Строка подключения в компоненте всегда отправляется в формате UTF-8. </span>
 +
 
 +
Пример GET-запроса (передача параметров param1 и param2, имеющих значения value1 и value2 соответственно):
 
  <nowiki>http://</nowiki>www.oktell.ru'''?'''param1=value1'''&'''param2=value2
 
  <nowiki>http://</nowiki>www.oktell.ru'''?'''param1=value1'''&'''param2=value2
  
 +
Запрос '''POST''' передает данные серверу, используя тело HTTP запроса. '''POST''' может отправлять гораздо большие объемы данных. Лимит устанавливается веб-сервером и обычно равен около 2MB. Все необходимые параметры перечисляются в поле "'''Запрос'''", для разделения параметров используются используется символ "'''&'''".
  
, когда POST передает данные, используя тело HTTP запроса.
+
В отличии, от метода GET, '''POST''' может отправлять данные не только в кодировке UTF-8. В поле "'''Кодировка запроса'''" вы можете выбрать Windows-1251, Unicode и другие форматы.  
  
Длина URL'а ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать GET'ом.
 
  
POST может отправлять гораздо большие объемы данных. Лимит устанавливается веб-сервером и обычно равен около 2MB.
 
  
 
Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя (в отличии от URL, который виден почти всегда).
 
Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя (в отличии от URL, который виден почти всегда).

Версия 09:00, 22 апреля 2014

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

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


Введение

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

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

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

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


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

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

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


Урок21-001.png


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

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


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


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


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