cURL PHP – это библиотека функций PHP предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS
. Библиотека используется для получения данных в виде XML
, JSON
и непосредственно в HTML
, парсинга, загрузки и передачи файлов и т.д. Посылать HTTP запросы можно методами GET, POST, PUT, DELETE
.
Официальная документация.
GET запрос
Простой GET запрос:
$ch = curl_init('https://example.com/v1/users');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
$errorCode = curl_errno($ch);
$errorText = curl_error($ch);
$info = curl_getinfo($ch);
curl_close($ch);
print_r(json_decode($response, true));
GET-запрос с параметрами
Получим пользователя по его ID:
$url = 'https://example.com';
$version = 'v1';
$resource = 'users';
$params = [
'id' => 2200,
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf(
"%s/%s/%s?%s", $url, $version, $resource, http_build_query($params)
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
POST запрос
Добавление пользователя:
$url = 'https://example.com';
$version = 'v1';
$resource = 'users';
$token = '876ef885733d24f5bc449f1611d2d1739a6ef56ca8a760f4bfa3610374101e58';
$params = [
'email' => 'test@mail.com',
'name' => 'John Smith',
'gender' => 'male',
'status' => 'active',
];
$headers = [
'Content-Type: application/json',
'Authorization: Bearer ' . $token
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf(
"%s/%s/%s", $url, $version, $resource
));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
PUT запрос
Изменение пользователя по его ID:
$url = 'https://example.com';
$version = 'v1';
$resource = 'users/2200';
$token = '876ef885733d24f5bc449f1611d2d1739a6ef56ca8a760f4bfa3610374101e58';
$params = [
'email' => 'test_update@mail.com'
];
$headers = [
'Content-Type: application/json',
'Authorization: Bearer ' . $token
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf(
"%s/%s/%s?%s", $url, $version, $resource, http_build_query($params)
));
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
DELETE запрос
Удаление пользователя по его ID:
$url = 'https://example.com';
$version = 'v1';
$resource = 'users/2200';
$token = '876ef885733d24f5bc449f1611d2d1739a6ef56ca8a760f4bfa3610374101e58';
$headers = [
'Content-Type: application/json',
'Authorization: Bearer ' . $token
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf(
"%s/%s/%s", $url, $version, $resource
));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
Basic авторизация
$url = 'https://example.com/auth.php';
$login = 'admin';
$password = 'password';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
Bearer авторизация
$url = 'https://example.com';
$version = 'v1';
$resource = 'users';
$headers = [
'Content-Type: application/json',
'Authorization: Bearer YOUR-TOKEN'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf(
"%s/%s/%s", $url, $version, $resource
));
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BEARER);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
OAuth авторизация
$headers = [
'Content-Type: application/json',
'Authorization: OAuth YOUR-TOKEN'
];
Дополнительная информация о сеансе
$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_exec($ch);
$errorCode = curl_errno($ch); // код последней ошибки
$errorText = curl_error($ch); // описание последней ошибки
$info = curl_getinfo($ch); // дополнительная информация о сеансе
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); // код ответа сервера
curl_close($ch);
print_r($info);
print_r($http_code);
Комментарии (2)
12.09.2023 в 10:41
20.09.2023 в 03:45