Класс Response
Реализует методы для HTTP-ответов.
Все следующие примеры предполагают, что $response является экземпляром этого класса.
Получение значений заголовков
Имена заголовков нечувствительны к регистру, но нормализуются в верхнем регистре при разборе ответа.
$val = $response->getHeaderLine('content-type'); Прочитает заголовок Content-Type. Вы можете получить все установленные заголовки, используя:
$response->getHeaders();
Получение тела ответа
Вы можете получить доступ к потоку тела ответа, используя:
$content = $response->getBody();
Вы можете получить строку тела, используя:
$content = $response->getStringBody();
Если тело ответа находится в формате XML или JSON, вы можете использовать специальные методы доступа, специфичные для типа содержимого, для чтения декодированных данных. Данные JSON будут возвращены в виде массивов, а данные XML — в виде узлов SimpleXML:
// Get as XML $content = $response->getXml() // Get as JSON $content = $response->getJson()
Если ответ не может быть декодирован, будет возвращено значение null.
Проверка кода состояния
Вы можете получить доступ к коду состояния ответа, используя:
$content = $response->getStatusCode();
Константы
-
stringMETHOD_DELETE'DELETE'
Метод HTTP DELETE
-
stringMETHOD_GET'GET'
Метод HTTP GET
-
stringMETHOD_HEAD'HEAD'
Метод HTTP HEAD
-
stringMETHOD_OPTIONS'OPTIONS'
Метод HTTP OPTIONS
-
stringMETHOD_PATCH'PATCH'
Метод HTTP PATCH
-
stringMETHOD_POST'POST'
Метод HTTP POST
-
stringMETHOD_PUT'PUT'
Метод HTTP PUT
-
stringMETHOD_TRACE'TRACE'
Метод HTTP TRACE
-
intSTATUS_ACCEPTED202
Код HTTP 202
-
intSTATUS_CREATED201
Код HTTP 201
-
intSTATUS_FOUND302
Код HTTP 302
-
intSTATUS_MOVED_PERMANENTLY301
Код HTTP 301
-
intSTATUS_NON_AUTHORITATIVE_INFORMATION203
Код HTTP 203
-
intSTATUS_NO_CONTENT204
Код HTTP 204
-
intSTATUS_OK200
Код HTTP 200
-
intSTATUS_SEE_OTHER303
Код HTTP 303
-
intSTATUS_TEMPORARY_REDIRECT307
Код HTTP 307
Резюме свойств
- $_cookies protected
arrayМассив файлов cookie в ответе.
- $_json protected
arrayКэшированные декодированные данные JSON.
- $_xml protected
SimpleXMLElementКэшированные декодированные данные XML.
- $code protected
intКод состояния ответа.
- $cookies protected
Cake\Http\Cookie\CookieCollectionЭкземпляр Cookie Collection
- $headerNames protected
arrayКарта нормализованного имени заголовка к исходному имени, использовавшемуся для регистрации заголовка.
- $headers protected
arrayСписок всех зарегистрированных заголовков в формате ключ => массив значений.
- $reasonPhrase protected
stringФраза причины кода состояния.
Краткое описание методов
-
__construct() public
Конструктор
-
_decodeGzipBody() protected
Распаковывает gzip-ответ.
-
_getBody() protected
Обеспечивает поддержку магического метода __get().
-
_getCookies() protected
Доступ к свойству
$this->cookies -
_getHeaders() protected
Обеспечивает поддержку магического метода __get().
-
_getJson() protected
Получить тело ответа в формате JSON, декодированное.
-
_getXml() protected
Получить тело ответа в формате XML, декодированное.
-
_parseHeaders() protected
Парсит заголовки при необходимости.
-
buildCookieCollection() protected
Лениво создаёт CookieCollection и объекты cookie из заголовка ответа
-
cookies() public
Получить все куки.
-
getBody() public
Получить тело сообщения.
-
getCookie() public
Получить значение одного куки.
-
getCookieCollection() public
Получить коллекцию куки из этого ответа.
-
getCookieData() public
Получить полные данные для одного куки.
-
getCookies() public
Получить данные всех куки.
-
getEncoding() public
Получить кодировку, если она была установлена.
-
getHeader() public
Получить значение заголовка сообщения по заданному, нечувствительному к регистру, имени.
-
getHeaderLine() public
Получить строку заголовка, разделённую запятыми, для одного заголовка.
-
getHeaders() public
Получить все заголовки сообщения.
-
getJson() public
Получить тело ответа в формате JSON, декодированное.
-
getProtocolVersion() public
Получить HTTP версию протокола в виде строки.
-
getReasonPhrase() public
Получить фразу причины ответа, связанную со статусом.
-
getStatusCode() public
Получить код состояния ответа.
-
getStringBody() public
Получить тело ответа в виде строки.
-
getXml() public
Получить тело ответа в формате XML, декодированное.
-
hasHeader() public
Проверяет существование заголовка по заданному, нечувствительному к регистру, имени.
-
isOk() public
Проверить, был ли код состояния ответа в диапазоне 2xx/3xx.
-
isRedirect() public
Проверить, был ли код состояния ответа кодом перенаправления.
-
isSuccess() public
Проверить, был ли код состояния ответа в диапазоне 2xx.
-
withAddedHeader() public
Возвращает экземпляр с указанным заголовком, добавленным со значением.
-
withBody() public
Возвращает экземпляр с указанным телом сообщения.
-
withHeader() public
Возвращает экземпляр с предоставленным заголовком, заменяя любые существующие значения заголовков с тем же именем, нечувствительным к регистру.
-
withProtocolVersion() public
Возвращает экземпляр со значениями HTTP версии протокола.
-
withStatus() public
Возвращает экземпляр с указанным кодом состояния и, необязательно, фразой причины.
-
withoutHeader() public
Возвращает экземпляр без указанного заголовка.
Подробное описание методов
__construct() public
__construct(array $headers = [], string $body = '')
Конструктор
Параметры
-
array$headers optional Необработанные заголовки.
-
string$body optional Тело ответа.
_decodeGzipBody() protected
_decodeGzipBody(string $body): string
Распаковка gzip-ответа.
Ищет gzip-подписи, и если существует gzinflate(), тело будет распаковано.
Параметры
-
string$body Тело, закодированное gzip.
Возвращает
stringИсключения
RuntimeExceptionПри попытке декодирования gzip-контента без gzinflate.
_getBody() protected
_getBody(): string
Обеспечивает поддержку magic __get().
Возвращает
string_getCookies() protected
_getCookies(): array
Доступ к свойству $this->cookies
Возвращает
array_getHeaders() protected
_getHeaders(): string[]
Обеспечивает поддержку magic __get().
Возвращает
string[]_getJson() protected
_getJson(): mixed
Получение тела ответа как JSON-данных.
Возвращает
mixed_getXml() protected
_getXml(): SimpleXMLElement|null
Получение тела ответа как XML-данных.
Возвращает
SimpleXMLElement|null_parseHeaders() protected
_parseHeaders(array $headers): void
Разбирает заголовки, если необходимо.
- Декодирует код состояния и reasonphrase.
- Разбирает и нормализует имена и значения заголовков.
Параметры
-
array$headers Заголовки для разбора.
Возвращает
voidbuildCookieCollection() protected
buildCookieCollection(): void
Лениво создаёт CookieCollection и cookie-объекты из заголовка ответа
Возвращает
voidcookies() public
cookies(): array
Получение всех cookies
Возвращает
arraygetBody() public
getBody(): StreamInterface
Получает тело сообщения.
Возвращает
StreamInterfacegetCookie() public
getCookie(string $name): string|array|null
Получение значения отдельного cookie.
Параметры
-
string$name Имя значения cookie.
Возвращает
string|array|nullgetCookieCollection() public
getCookieCollection(): Cake\Http\Cookie\CookieCollection
Получение коллекции cookie из этого ответа.
Этот метод предоставляет доступ к экземпляру CookieCollection ответа, позволяя взаимодействовать с объектами cookie напрямую.
Возвращает
Cake\Http\Cookie\CookieCollectiongetCookieData() public
getCookieData(string $name): array|null
Получение полных данных для отдельного cookie.
Параметры
-
string$name Имя значения cookie.
Возвращает
array|nullgetCookies() public
getCookies(): array
Получение всех данных cookie.
Возвращает
arraygetEncoding() public
getEncoding(): string|null
Получение кодировки, если она была установлена.
Возвращает
string|nullgetHeader() public
getHeader(string $header): string[]
Извлекает значение заголовка сообщения по заданному имени без учёта регистра.
Этот метод возвращает массив всех значений заголовка с заданным именем без учёта регистра.
Если заголовок отсутствует в сообщении, этот метод ДОЛЖЕН возвращать пустой массив.
Параметры
-
string$header Имя поля заголовка без учёта регистра.
Возвращает
string[]getHeaderLine() public
getHeaderLine(string $name): string
Извлекает строку, разделённую запятыми, со значениями для одного заголовка.
Этот метод возвращает все значения заголовка с заданным именем без учёта регистра в виде строки, объединённой запятыми.
ПРИМЕЧАНИЕ: не все значения заголовков могут быть адекватно представлены с помощью конкатенации запятыми. Для таких заголовков используйте getHeader() и укажите свой собственный разделитель при конкатенации.
Если заголовок отсутствует в сообщении, этот метод ДОЛЖЕН возвращать пустую строку.
Параметры
-
string$name Имя поля заголовка без учёта регистра.
Возвращает
stringgetHeaders() public
getHeaders(): array
Извлекает все заголовки сообщения.
Ключи представляют имя заголовка в том виде, в котором он будет отправлен по сети, а каждое значение представляет собой массив строк, связанных с заголовком.
// Представление заголовков в виде строки foreach ($message->getHeaders() as $name => $values) { echo $name . ": " . implode(", ", $values); }
// Вывод заголовков по одному: foreach ($message->getHeaders() as $name => $values) { foreach ($values as $value) { header(sprintf('%s: %s', $name, $value), false); } }
Возвращает
arraygetJson() public
getJson(): mixed
Получение тела ответа как JSON-данных.
Возвращает
mixedgetProtocolVersion() public
getProtocolVersion(): string
Извлекает версию протокола HTTP в виде строки.
Строка ДОЛЖНА содержать только номер версии HTTP (например, "1.1", "1.0").
Возвращает
stringgetReasonPhrase() public
getReasonPhrase(): string
Получает фразу причины ответа, связанную с кодом состояния.
Поскольку фраза причины не является обязательным элементом в строке состояния ответа, значение фразы причины МОЖЕТ быть null. Реализации МОГУТ выбирать возвращать рекомендуемую по умолчанию фразу причины RFC 7231 (или те, которые перечислены в реестре кодов состояния HTTP IANA) для кода состояния ответа.
Возвращает
stringgetStatusCode() public
getStatusCode(): int
Получает код состояния ответа.
Код состояния — это 3-значный целочисленный код результата попытки сервера понять и удовлетворить запрос.
Возвращает
intgetStringBody() public
getStringBody(): string
Получение тела ответа в виде строки.
Возвращает
stringgetXml() public
getXml(): SimpleXMLElement|null
Получение тела ответа как XML-данных.
Возвращает
SimpleXMLElement|nullhasHeader() public
hasHeader(string $header): bool
Проверяет, существует ли заголовок с заданным, нечувствительным к регистру, именем.
Параметры
-
string$header Имя заголовка, нечувствительное к регистру.
Возвращает
boolisOk() public
isOk(): bool
Проверяет, был ли код состояния ответа в диапазоне 2xx/3xx
Возвращает
boolisRedirect() public
isRedirect(): bool
Проверяет, был ли код состояния ответа кодом перенаправления.
Возвращает
boolisSuccess() public
isSuccess(): bool
Проверяет, был ли код состояния ответа в диапазоне 2xx
Возвращает
boolwithAddedHeader() public
withAddedHeader(string $name, string|string[] $value): static
Возвращает экземпляр с добавлением указанного заголовка с заданным значением.
Существующие значения для указанного заголовка будут сохранены. Новые значения будут добавлены к существующему списку. Если заголовок ранее не существовал, он будет добавлен.
Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменяемость сообщения, и ДОЛЖЕН вернуть экземпляр с новым заголовком и/или значением.
Параметры
-
string$name Имя поля заголовка, нечувствительное к регистру, для добавления.
-
string|string[]$value Значение(я) заголовка.
Возвращает
staticИсключения
Exception\InvalidArgumentExceptionДля недопустимых имён или значений заголовков.
withBody() public
withBody(StreamInterface $body): static
Возвращает экземпляр с указанным телом сообщения.
Тело ДОЛЖНО быть объектом StreamInterface.
Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменяемость сообщения, и ДОЛЖЕН вернуть новый экземпляр с новым потоком тела.
Параметры
-
StreamInterface$body Тело.
Возвращает
staticИсключения
Exception\InvalidArgumentExceptionПри некорректном теле.
withHeader() public
withHeader(string $name, string|string[] $value): static
Возвращает экземпляр с указанным заголовком, заменяя любые существующие значения заголовков с тем же именем, нечувствительным к регистру.
Хотя имена заголовков нечувствительны к регистру, регистр заголовка будет сохранён этой функцией и возвращён из getHeaders().
Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменяемость сообщения, и ДОЛЖЕН вернуть экземпляр с новым и/или обновлённым заголовком и значением.
Параметры
-
string$name Имя поля заголовка, нечувствительное к регистру.
-
string|string[]$value Значение заголовка.
Возвращает
staticИсключения
Exception\InvalidArgumentExceptionДля недопустимых имён или значений заголовков.
withProtocolVersion() public
withProtocolVersion(string $version): static
Возвращает экземпляр с указанной версией протокола HTTP.
Строка версии ДОЛЖНА содержать только номер версии HTTP (например, "1.1", "1.0").
Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменяемость сообщения, и ДОЛЖЕН вернуть экземпляр с новой версией протокола.
Параметры
-
string$version Версия протокола HTTP
Возвращает
staticwithStatus() public
withStatus(int $code, string $reasonPhrase = ''): static
Возвращает экземпляр со значением указанного кода состояния и, необязательно, фразы причины.
Если фраза причины не указана, реализации МОГУТ выбрать значение по умолчанию из RFC 7231 или рекомендуемой IANA фразы причины для кода состояния ответа.
Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменяемость сообщения, и ДОЛЖЕН вернуть экземпляр с обновлённым состоянием и фразой причины.
Параметры
-
int$code Код состояния для установки.
-
string$reasonPhrase optional Фраза причины состояния.
Возвращает
staticwithoutHeader() public
withoutHeader(string $name): static
Возвращает экземпляр без указанного заголовка.
Разрешение заголовков ДОЛЖНО выполняться без учёта регистра.
Этот метод ДОЛЖЕН быть реализован таким образом, чтобы сохранить неизменяемость сообщения, и ДОЛЖЕН вернуть экземпляр, удаляющий указанный заголовок.
Параметры
-
string$name Имя поля заголовка, нечувствительное к регистру, для удаления.
Возвращает
staticПодробное описание свойств
$_cookies protected
Массив куки в ответе.
Тип
array$_json protected
Кэшированные декодированные данные JSON.
Тип
array$_xml protected
Кэшированные декодированные данные XML.
Тип
SimpleXMLElement$code protected
Код состояния ответа.
Тип
int$cookies protected
Экземпляр Cookie Collection
Тип
Cake\Http\Cookie\CookieCollection$headerNames protected
Отображение нормализованного имени заголовка на оригинальное имя, используемое для регистрации заголовка.
Тип
array$headers protected
Список всех зарегистрированных заголовков в формате ключ => массив значений.
Тип
array$reasonPhrase protected
Фраза причины для кода состояния
Тип
string
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Http.Client.Response.html