Метод body
Метод body применяется к объекту ответа, который возвращается при использовании HTTP-клиента Laravel. Этот метод позволяет получить тело ответа в виде строки. Он не принимает никаких параметров и возвращает содержимое ответа как есть. Если ответ содержит JSON-данные, их можно получить как строку и затем декодировать с помощью json_decode или использовать метод json для автоматического преобразования в массив.
Синтаксис
<?php
$body = $response->body();
?>
Пример
Давайте отправим GET-запрос на внешний API и получим тело ответа в виде строки:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class ExampleController extends Controller
{
public function index()
{
$response = Http::get('https://api.example.com/users');
$body = $response->body();
echo $body;
}
}
?>
Результат выполнения кода:
"[\"user\": \"John\", \"user\": \"Jane\", \"user\": \"Bob\"]"
Пример
Получим тело ответа и проверим его содержимое перед обработкой:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class UserController extends Controller
{
public function fetchData()
{
$response = Http::get('https://api.example.com/posts');
if ($response->successful()) {
$body = $response->body();
if (!empty($body)) {
$data = json_decode($body, true);
echo "Data retrieved successfully";
} else {
echo "Empty response body";
}
} else {
echo "Request failed";
}
}
}
?>
Результат выполнения кода:
"Data retrieved successfully"
Пример
Обработаем ответ, который может содержать HTML-разметку:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class PageController extends Controller
{
public function show()
{
$response = Http::get('https://example.com/page');
$html = $response->body();
if (str_contains($html, '<title>')) {
echo "HTML page received";
}
return view('page.content', ['html' => $html]);
}
}
?>
Результат выполнения кода:
"HTML page received"
Смотрите также
-
метод
json,
который возвращает тело ответа в виде массива -
метод
status,
который возвращает HTTP-статус ответа -
метод
successful,
который проверяет успешность запроса -
метод
header,
который возвращает заголовки ответа