Метод asJson
Метод asJson применяется к HTTP-клиенту Laravel и позволяет отправлять запросы с телом в формате JSON. Он автоматически преобразует переданные данные в JSON-строку и устанавливает соответствующий заголовок. Метод принимает массив данных в качестве единственного параметра и возвращает экземпляр класса Http для дальнейшей цепочки вызовов.
Синтаксис
<?php
Http::asJson($data);
?>
Пример
Давайте отправим POST-запрос с JSON-данными на внешний API:
<?php
use Illuminate\Support\Facades\Http;
$data = [
'title' => 'New Article',
'content' => 'Lorem ipsum dolor sit amet',
'status' => 'draft'
];
$response = Http::asJson($data)->post('https://api.example.com/posts');
echo $response->status();
?>
Результат выполнения кода:
"201"
Пример
Отправим PUT-запрос для обновления данных в формате JSON:
<?php
use Illuminate\Support\Facades\Http;
$updateData = [
'title' => 'Updated Article',
'content' => 'New content for the article',
'status' => 'published'
];
$response = Http::asJson($updateData)->put('https://api.example.com/posts/1');
if ($response->successful()) {
echo $response->json('title');
}
?>
Результат выполнения кода:
"Updated Article"
Пример
Используем метод asJson для отправки запроса с вложенными данными:
<?php
use Illuminate\Support\Facades\Http;
$complexData = [
'user' => [
'name' => 'John',
'email' => 'john@example.com',
'profile' => [
'age' => 30,
'city' => 'New York'
]
],
'preferences' => ['dark_mode' => true, 'notifications' => false]
];
$response = Http::asJson($complexData)->post('https://api.example.com/users');
echo $response->successful() ? 'true' : 'false';
?>
Результат выполнения кода:
"true"
Смотрите также
-
метод
withHeaders,
который добавляет пользовательские заголовки к запросу -
метод
asForm,
который отправляет запрос в формате application/x-www-form-urlencoded -
метод
acceptJson,
который указывает серверу ожидать JSON-ответ -
метод
json,
который декодирует JSON-ответ в массив