Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как отправить HTTP-запрос к API

Короткий ответ

Простой запрос GET выполняет file_get_contents():

<?php
 
// rates.php
 
$data = json_decode(file_get_contents('https://api.example.com/rates'), true);
 
echo $data['rates']['EUR'];

POST с JSON

Для отправки данных и заголовков используйте cURL:

<?php
 
// create-order.php
 
$curl = curl_init('https://api.example.com/orders');
 
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 5,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode(['product_id' => 42]),
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
]);
 
$body = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 
if ($body === false || $status >= 400) {
    exit('Request failed');
}
 
$order = json_decode($body, true);

Не забудьте про время ожидания

Без CURLOPT_TIMEOUT запрос к зависшему сервису будет держать вашу страницу открытой.

Функции из этого ответа

  • curl_init — Создаёт запрос cURL.
  • curl_setopt — Задаёт настройку запроса cURL.
  • json_decode — Разбирает строку JSON.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.