HttpRequest
Действие HttpRequest позволяет боту выполнять HTTP-запросы,
чтобы получать данные от внешних ресурсов и сохранять их в переменные.
подсказка
Если вы хотите выполнять HTTP-запросы без тегов действий, но из вставок JavaScript-кода,
используйте встроенный сервис
$http.Параметры
| Параметр | Тип | Описание | Обязательный |
|---|---|---|---|
url | Строка | URL запроса. | Да |
method | Строка | Метод запроса. Возможные значения: • GET • POST • PUT • DELETE | Да |
dataType | Строка | Тип передаваемых данных. Значение этого параметра определяет значение HTTP-заголовка Content-Type: • json (значение по умолчанию) — application/json. • xml — application/xml. • text — text/plain. Вы также можете напрямую указать заголовок Content-Type в параметре headers: он будет иметь приоритет над dataType. | Нет |
body | Строка | Тело запроса. Можно указать данные в любом формате (JSON, XML, произвольный текст), а также использовать переменные. | Нет |
timeout | Число | Время ожидания ответа в миллисекундах. Если время ожидания будет превышено, диалог перейдет в стейт, указанный в параметре errorState, а если errorState не указан — в корень сценария /. | Нет |
headers | Массив объектов | Заголовки запроса. Укажите значение в формате: | Нет |
vars | Массив объектов | Переменные, в которые будут сохранены данные из ответа. | Нет |
okState | Строка | Стейт, в который перейдет диалог, если сервер вернет код успешного ответа (в промежутке 200–300). Код ответа сохраняется в переменную $session.httpStatus. | Нет |
errorState | Строка | Стейт, в который перейдет диалог, если сервер вернет код неудачного отве та (не в промежутке 200–300). | Нет |
Сохранение данных в переменные
С помощью параметра vars вы можете сохранить данные из ответа на успешный HTTP-запрос.
- JAICP сохраняет ответ от сервера в локальную переменную
$httpResponse. К этой переменной можно обращаться только внутри тегаHttpRequest.
подсказка
Ответ также сохраняется в сессионные данные как
$session.httpResponse.
Обращайтесь к этому полю, если хотите использовать данные из ответа в д ругом стейте.
При каждом вызове тега HttpRequest значение поля перезаписывается.-
В значении параметра
varsукажите массив объектов с полямиnameиvalue, где:name— имя переменной. Вычисленное значениеvalueбудет сохранено в$session.<name>.value— выражение с использованием переменной$httpResponseдля доступа к нужным полям ответа.
предупреждениеВ значенииnameиспользуйте символы Aa–Zz, _, 0–9. Первым символом в имени должна быть буква. Нельзя использовать зарезервированные слова JavaScript.
- Пример копирования данных из ответа
- Пример с предобработкой ответа
Сервер возвращает в ответе текст случайной цитаты и имя ее автора:
{
"quoteText": "И все-таки она вертится!",
"quoteAuthor": "Галилео Галилей"
}