Метод getHeaders класса ClientResponse
Метод getHeaders класса ClientResponse
возвращает все заголовки HTTP-ответа, полученного
через HTTP-клиент Symfony. Метод не принимает
параметров и возвращает ассоциативный массив, где
ключами являются имена заголовков, а значениями -
массивы значений этих заголовков.
Метод удобно использовать после выполнения запроса
через request, чтобы прочитать служебную
информацию из ответа: тип содержимого, кэширование,
серверные заголовки и другие метаданные.
Синтаксис
public function getHeaders(): array
Пример
Давайте выполним GET-запрос и выведем все заголовки ответа:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpClientHttpClient;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/client', name: 'article_client')]
public function index(): Response
{
$client = HttpClient::create();
$res = $client->request('GET', 'https://example.com');
$headers = $res->getHeaders();
return new Response(json_encode($headers));
}
}
?>
Результат выполнения кода:
{"content-type":["text/html; charset=UTF-8"],"server":["nginx"],"date":["Mon, 01 Jan 2026 00:00:00 GMT"]}
Пример
Давайте прочитаем конкретный заголовок content-type
из полученного ответа:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpClientHttpClient;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/client/content-type', name: 'article_client_type')]
public function index(): Response
{
$client = HttpClient::create();
$res = $client->request('GET', 'https://example.com');
$headers = $res->getHeaders();
$type = $headers['content-type'][0] ?? 'unknown';
return new Response($type);
}
}
?>
Результат выполнения кода:
"text/html; charset=UTF-8"
Пример
Давайте переберём все заголовки в цикле и выведем
их в формате 'name: value':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpClientHttpClient;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/client/headers', name: 'article_client_headers')]
public function index(): Response
{
$client = HttpClient::create();
$res = $client->request('GET', 'https://example.com');
$out = '';
foreach ($res->getHeaders() as $name => $values) {
$out .= $name . ': ' . implode(', ', $values) . "\n";
}
return new Response($out);
}
}
?>
Результат выполнения кода:
"content-type: text/html; charset=UTF-8\nserver: nginx\ndate: Mon, 01 Jan 2026 00:00:00 GMT"
Смотрите также
-
класс
ClientResponse,
который представляет ответ HTTP-клиента -
метод
getStatusCode,
который возвращает код состояния ответа -
метод
getContent,
который возвращает тело ответа -
метод
toArray,
который декодирует JSON-тело в массив