Метод getContent класса Request
Метод getContent класса Request возвращает тело HTTP-запроса в виде строки.
Он используется для чтения данных, которые не были разобраны в параметры запроса:
например, JSON- или XML-содержимое, отправленное в теле POST- или PUT-запроса.
Метод не имеет обязательных параметров и возвращает строку.
Если тело запроса пустое, метод вернёт пустую строку.
Синтаксис
public function getContent(): string
Пример
Давайте получим тело POST-запроса в контроллере и вернём его в ответе:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$res = $request->getContent();
return new Response($res);
}
}
?>
Результат выполнения кода для тела запроса 'hello':
hello
Пример
Давайте разберём JSON-тело запроса и вернём значение поля name:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(Request $request): Response
{
$data = json_decode($request->getContent(), true);
$res = $data['name'];
return new Response($res);
}
}
?>
Результат выполнения кода для тела запроса '{"name": "abcde"}':
abcde
Пример
Давайте проверим, что тело запроса пустое, и вернём соответствующее сообщение:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article/check', name: 'article_check')]
public function check(Request $request): Response
{
if ($request->getContent() === '') {
$res = 'empty body';
} else {
$res = 'body exists';
}
return new Response($res);
}
}
?>
Результат выполнения кода для пустого тела запроса:
empty body
Смотрите также
-
класс
Request,
который представляет HTTP-запрос -
метод
get,
который возвращает параметр запроса -
метод
toArray,
который возвращает параметры запроса массивом -
метод
getPayload,
который возвращает тело запроса в виде объекта