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

Класс ClientResponse

Класс ClientResponse представляет собой ответ, полученный в результате выполнения HTTP-запроса через HttpClient. Объект этого класса возвращается методами request и stream. Он позволяет получить статус-код ответа, содержимое, заголовки, а также преобразовать ответ в массив или поток.

Класс реализует интерфейсы ResponseInterface и StreamableInterface. Основные методы: getStatusCode, getContent, toArray, getHeaders, getInfo, toStream, cancel.

Синтаксис

use SymfonyContractsHttpClientResponseInterface; use SymfonyComponentHttpClientResponseClientResponse;

Пример

Давайте выполним GET-запрос и получим объект ClientResponse:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyContractsHttpClientHttpClientInterface; class ArticleController extends AbstractController { public function index(HttpClientInterface $client): Response { $res = $client->request('GET', 'https://example.com/api/article'); return new Response($res->getContent()); } } ?>

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

"article content"

Пример

Давайте получим статус-код ответа через метод getStatusCode:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyContractsHttpClientHttpClientInterface; class ArticleController extends AbstractController { public function index(HttpClientInterface $client): Response { $res = $client->request('GET', 'https://example.com/api/article'); return new Response($res->getStatusCode()); } } ?>

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

200

Пример

Давайте преобразуем JSON-ответ в массив через метод toArray:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyContractsHttpClientHttpClientInterface; class ArticleController extends AbstractController { public function index(HttpClientInterface $client): Response { $res = $client->request('GET', 'https://example.com/api/articles'); $data = $res->toArray(); return new Response($data['title']); } } ?>

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

"hello"

Пример

Давайте получим заголовки ответа через метод getHeaders:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyContractsHttpClientHttpClientInterface; class ArticleController extends AbstractController { public function index(HttpClientInterface $client): Response { $res = $client->request('GET', 'https://example.com/api/article'); $headers = $res->getHeaders(); return new Response($headers['content-type'][0]); } } ?>

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

"application/json"

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

  • класс HttpClient,
    который выполняет HTTP-запросы
  • метод request,
    который отправляет запрос и возвращает ответ
  • метод getStatusCode,
    который возвращает статус-код ответа
  • метод toArray,
    который преобразует JSON-ответ в массив
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить