$http.query
Это основной метод встроенного HTTP-клиента JAICP. Он выполняет HTTP-запрос к внешнему ресурсу.
Метод принимает два аргумента: строку с URL запроса и объект с настройками.
$http.query("https://httpbin.org/get?param=${param}", {
method: "POST",
query: { param: "query param value" },
body: { key: "body key value" },
headers: {
"Content-Type": "application/json",
"Authorization": "Basic " + $secrets.get("HTTPBIN_BASIC_AUTH")
},
dataType: "json",
timeout: 10000
});
URL запроса
URL запроса может быть абсолютным и относительным.
- Абсолютный URL
- Относительный URL
Абсолютный URL начинается с протокола http://
или https://
и задает полный путь до ресурса, к которому будет отправлен запрос.
$http.query("https://httpbin.org/get");
Относительный URL задает путь до ресурса относительно базового URL. Базовый URL должен быть предварительно задан в сценарии через $http.config
.
$http.config({
url: {
protocol: "https",
host: "httpbin.org",
port: 443
}
});
// ...
$http.query("/get");
Настройки запроса
Поле | Тип | Описание |
---|---|---|
method | Строка | HTTP-метод запроса. Возможные значения: GET (значение по умолчанию), POST , PUT , DELETE , HEAD , CONNECT , OPTIONS , TRACE . |
query | Объект | Параметры для подстановки в URL запроса. |
body | Объект или строка | Тело запроса. |
form | Объект | Данные HTML-формы. |
fileUrl | Строка | URL отправляемого файла. |
fileName | Строка | Название отправляемого файла. |
headers | Объект | Заголовки запроса. |
dataType | Строка | Тип данных, которые содержатся в запросе и ожидаются в ответе. Возможные значения: json , text , xml . |
timeout | Число | Максимальное время выполнения запроса в миллисекундах. Предельное значение — 25000. |
cachingRequired | Логический | Нужно ли использовать кэширование, если получен успешный ответ на запрос. По умолчанию false . |
oauth2ResourceDetail | Объект | Настройки авторизации OAuth 2.0. |
Установка HTTP-метода
Чтобы задать HTTP-метод, укажите в настройках запроса поле method
.
Кроме того, для наиболее часто используемых операций вы можете использовать альтернативные методы сервиса $http
:
$http.get
$http.post
$http.put
$http.delete
Сигнатура и поведение этих методов такие же, как у $http.query
.
При этом они автоматически устанавливают поле method
в нужное значение.
Подстановка URL-параметров
URL запроса может содержать выражения внутри последовательности символов ${}
.
При выполнении запроса они будут заменены на значения соответствующих полей из объекта query
.
- URL без подстановок
- URL с подстановками
$http.query("https://httpbin.org/get?param1=request¶m2=with%20params");
$http.query("https://httpbin.org/${method}?param1=${param1}¶m2=${param2}", {
query: {
method: "get",
param1: "request",
param2: "with params",
}
});
Отправка HTML-форм
Чтобы обратиться к ресурсу, который принимает запросы в формате HTML-форм,
передавайте параметры формы в поле form
вместо body
.
Такому запросу автоматически устанавливается заголовок Content-Type
со значением application/x-www-form-urlencoded
.
Поля формы соответствующим образом кодируются в теле запроса.
$http.query("https://httpbin.org/post?key=${value}", {
method: "POST",
form: {
username: "Иван Иванович",
email: "example@just-ai.com",
password: "qwerty"
}
});