Класс Http
Класс Http используется для отправки HTTP-запросов к внешним API и веб-сервисам. Он предоставляет методы для всех основных типов запросов: get, post, put, patch и delete. Методы возвращают экземпляр Response, с помощью которого можно получить тело ответа, статус, заголовки и другую информацию. Класс поддерживает настройку заголовков, отправку JSON-данных, работу с формами, аутентификацию по токену и базовую аутентификацию.
Синтаксис
<?php
use Illuminate\Support\Facades\Http;
$response = Http::get($url);
$response = Http::post($url, $data);
$response = Http::put($url, $data);
$response = Http::patch($url, $data);
$response = Http::delete($url);
?>
Пример
Выполним GET-запрос к публичному API и получим список данных:
<?php
use Illuminate\Support\Facades\Http;
$res = Http::get('https://jsonplaceholder.typicode.com/posts/1');
$data = $res->json();
echo $data['title'];
?>
Результат выполнения кода:
"sunt aut facere repellat provident occaecati excepturi optio reprehenderit"
Пример
Отправим POST-запрос с JSON-данными для создания новой записи:
<?php
use Illuminate\Support\Facades\Http;
$data = [
'title' => 'article',
'body' => 'text',
'userId' => 1
];
$res = Http::post('https://jsonplaceholder.typicode.com/posts', $data);
echo $res->status();
echo $res->json('id');
?>
Результат выполнения кода:
"201"
"101"
Пример
Отправим PUT-запрос для обновления существующей записи:
<?php
use Illuminate\Support\Facades\Http;
$data = [
'title' => 'updated article',
'body' => 'updated text'
];
$res = Http::put('https://jsonplaceholder.typicode.com/posts/1', $data);
echo $res->successful();
?>
Результат выполнения кода:
"true"
Пример
Выполним DELETE-запрос для удаления записи:
<?php
use Illuminate\Support\Facades\Http;
$res = Http::delete('https://jsonplaceholder.typicode.com/posts/1');
echo $res->status();
?>
Результат выполнения кода:
"200"
Пример
Отправим запрос с заголовками и токеном авторизации:
<?php
use Illuminate\Support\Facades\Http;
$res = Http::withHeaders([
'X-Custom-Header' => 'CustomValue',
'Accept' => 'application/json'
])->withToken('your-api-token')
->get('https://jsonplaceholder.typicode.com/posts');
$res = $res->json();
echo count($res);
?>
Результат выполнения кода:
"100"
Смотрите также
-
метод
get,
который выполняет GET-запрос -
метод
post,
который выполняет POST-запрос -
метод
withHeaders,
который добавляет заголовки к запросу -
класс
Response,
который представляет ответ от сервера