РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
538 of 1361 menu

Исключение LengthRequiredHttpException

Исключение LengthRequiredHttpException наследуется от класса HttpException и представляет собой HTTP-ошибку с кодом 411. Оно выбрасывается, когда сервер требует наличия заголовка Content-Length в запросе, но клиент его не передал. Первым параметром в конструктор передаётся сообщение об ошибке, вторым - предыдущее исключение, третьим - код ответа.

Синтаксис

<?php use Symfony\Component\HttpKernel\Exception\LengthRequiredHttpException; $exception = new LengthRequiredHttpException($message, $previous, $code); ?>

Пример

Давайте выбросим исключение внутри контроллера, если в запросе отсутствует заголовок Content-Length:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\LengthRequiredHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { if (!$request->headers->has('Content-Length')) { throw new LengthRequiredHttpException('Content-Length header is missing.'); } return new Response('hello'); } } ?>

Результат выполнения кода при отсутствии заголовка:

411 Length Required

Пример

Давайте перехватим исключение и вернём корректный ответ с кодом 411:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\LengthRequiredHttpException; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { try { if (!$request->headers->has('Content-Length')) { throw new LengthRequiredHttpException('Content-Length header is missing.'); } return new Response('hello'); } catch (LengthRequiredHttpException $e) { return new Response($e->getMessage(), $e->getStatusCode()); } } } ?>

Результат выполнения кода:

"Content-Length header is missing."

Смотрите также

  • исключение HttpException,
    которое является базовым классом для HTTP-исключений
  • исключение BadRequestHttpException,
    которое представляет ошибку 400
  • метод getStatusCode,
    который возвращает код HTTP-ответа
  • метод getMessage,
    который возвращает текст сообщения об ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить