Класс ClientResponse
Класс ClientResponse возвращается всеми методами HTTP-клиента Laravel (get, post, put и другими) и представляет собой HTTP-ответ от внешнего сервера. Он предоставляет удобные методы для работы с телом ответа, заголовками, статус-кодом и проверки успешности выполнения запроса. Ответ может содержать JSON-данные, обычный текст или другие форматы.
Синтаксис
<?php
use IlluminateSupportFacadesHttp;
$response = Http::get($url);
$response = Http::post($url, $data);
$response = Http::put($url, $data);
$response = Http::delete($url);
?>
Пример получения содержимого ответа
Давайте выполним GET-запрос к внешнему API и получим тело ответа в виде строки:
<?php
use IlluminateSupportFacadesHttp;
$response = Http::get('https://api.example.com/users');
$body = $response->body();
echo $body;
?>
Результат выполнения кода:
"{\"users\":[{\"id\":1,\"name\":\"John Doe\"},{\"id\":2,\"name\":\"Jane Smith\"}]}"
Пример работы с JSON-ответом
Давайте получим JSON-ответ и преобразуем его в массив или объект:
<?php
use IlluminateSupportFacadesHttp;
$response = Http::get('https://api.example.com/users/1');
$array = $response->json();
$object = $response->object();
echo $array['name'];
echo $object->name;
?>
Результат выполнения кода:
"John Doe"
"John Doe"
Пример проверки статуса ответа
Давайте проверим успешность запроса и получим статус-код:
<?php
use IlluminateSupportFacadesHttp;
$response = Http::get('https://api.example.com/users');
if ($response->successful()) {
echo 'Request successful';
}
echo $response->status();
?>
Результат выполнения кода:
"Request successful"
"200"
Пример получения заголовков ответа
Давайте получим конкретный заголовок из ответа:
<?php
use IlluminateSupportFacadesHttp;
$response = Http::get('https://api.example.com/users');
$contentType = $response->header('Content-Type');
echo $contentType;
?>
Результат выполнения кода:
"application/json"
Пример обработки ошибок
Давайте обработаем неудачный запрос с помощью метода throw:
<?php
use IlluminateSupportFacadesHttp;
try {
$response = Http::get('https://api.example.com/not-found');
$response->throw();
echo $response->body();
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
}
?>
Результат выполнения кода:
"Error: HTTP request returned status code 404"