Надсилання запитів за допомогою curl, Webdevkin

Для обміну даними між серверами використовують різні методи. У статті показуємо, як надіслати запит на сервер за допомогою curl

Надсилання get-і post-запитів відбувається так.

Надсилання get-запитів.

Припустимо, ми маємо сайт mysite.com, який надає нам api для отримання списку деяких користувачів. І дозволяє передавати геть-параметри для фільтрації вибірки, наприклад, ім'я та вік. Ми хочемо надіслати запит на цей сторонній сайт і отримати від них список необхідних нам користувачів для своїх потреб.

Що тут відбувається? Спочатку ініціалізується curl сесія. Потім задається список параметрів запиту. CURLOPT_URL визначає звичайний URL, з якого ми хочемо отримати дані. CURLOPT_RETURNTRANSFER = true говорить про те, що ми хочемо отримати відповідь віддаленого сервера. Ця відповідь приходить у змінну $result, з якою ми вже можемо робити все, що завгодно.

Надсилання post-запитів.

Припустимо, те саме api дозволяє нам не тільки отримувати інформацію про користувачів, але й змінювати її. Наприклад, самим задавати ім'я та вік, знаючи id користувача. Показую, як це відбувається.

При надсиланні post-запиту доводиться писати трохи більше коду, але не страшно, він досить зрозумілий. У змінній $fields ми вказуємо ім'я та вік, додаємо user_id, щоб віддалений сервер міг зрозуміти, якого користувача ми хочемо відредагувати. Параметр CURLOPT_POST встановлюється в true, а CURLOPT_POSTFIELDS у $fields. CURLOPT_RETURNTRANSFER також встановлюється в true, тому що ми сподіваємося, що сервер щось відповість нам, наприклад, чи успішно пройшло оновлення даних, а якщо ні, то повернеться код помилки або її текстовий опис.

Буває зручно скористатися функцієюhttp_build_query($data), щоб сформувати рядок для надсилання. Наприклад, для надсилання всіх параметрів POST використовуйте $fields=http_build_query($_POST);