http.sendRequest
Отправляет HTTP-запрос к указанному URL.
Сигнатура: http.sendRequest(url string, method string, body any = nil, headers Map = nil) Response
Аргументы:
url
— строка, содержащая URL-адрес.method
— HTTP-метод. Поддерживаемые значения: GET
, POST
, PUT
, DELETE
, PATCH
, HEAD
, OPTIONS
.body
— тело запроса. Автоматически преобразуется в JSON или XML, если указан соответствующий тип содержимого.headers
— карта заголовков запроса. По умолчанию устанавливается Content-Type: application/json
.Возвращаемое значение: Объект ответа, содержащий:
statusCode
— HTTP-код состояния.body
— тело ответа. Автоматически преобразуется из JSON или XML в структуру данных.headers
— заголовки ответа.error
— ошибки (если есть).Пример JSON-запроса:
Отправка GET-запроса с заголовками:
$response = http.sendRequest(
"https://example.com/api/v1/users",
"GET",
{"limit": 10, "offset": 0},
{"Authorization": "Bearer myAccessToken"}
)
$statusCode = $response.statusCode // HTTP-статус: 200
$body = $response.body // Данные ответа в формате JSON (ассоциативный массив)
$headers = $response.headers // Заголовки ответа
Отправка POST-запроса с телом в формате JSON:
$requestBody = {
"username": "johndoe",
"email": "johndoe@example.com"
}
$response = http.sendRequest(
"https://example.com/api/v1/register",
"POST",
$requestBody,
{"Content-Type": "application/json"}
)
$body = $response.body // Ответ в виде ассоциативного массива
Пример XML-запроса:
Отправка XML-запроса с преобразованием структуры в строку:
$requestBody = [
{
"tag": "request",
"value": [
{
"tag": "user",
"value": [
{"tag": "name", "value": "John Doe"},
{"tag": "email", "value": "john.doe@example.com"}
]
}
]
}
]
$response = http.sendRequest(
"https://example.com/api/v1/xml",
"POST",
$requestBody,
{"Content-Type": "text/xml"}
)
$body = $response.body // Ответ в формате XML преобразуется в структуру
http.request
Создает объект HTTP-запроса, который можно настраивать перед отправкой.
Сигнатура:http.request(url string = "", method string = "POST", body any = nil) Request
Аргументы:
url
— строка URL.method
— HTTP-метод.body
— тело запроса.Возвращаемое значение: Объект запроса с методами для дальнейшей настройки:
headers(map)
— установка заголовков.timeout(seconds)
— установка тайм-аута.send()
— отправка запроса.Пример:
Создание и отправка POST-запроса:
$response = http.request("https://api.example.com/data", "POST", {"key": "value"})
.headers({"Content-Type": "application/json", "Authorization": "Bearer token"})
.timeout(60)
.send()
$statusCode = $response.statusCode // HTTP-статус
$body = $response.body // Тело ответа
Создание GET-запроса с минимальными настройками:
$response = http.request("https://api.example.com/status", "GET").send()
application/json
, тело автоматически преобразуется в соответствующие структуры данных.text/xml
обрабатывается как XML.$response.error
, чтобы убедиться, что запрос выполнен успешно.