CloudCastle Curl

Response
in package
implements Stringable

FinalYes

Неизменяемый ответ на запрос.

Содержит код состояния, заголовки, тело, тайминги и итоговый адрес (с учётом перенаправлений). Предоставляет удобные проверки класса статуса и разбор тела в структурированные форматы: JSON (Response::json()), XML (Response::xml()), YAML (Response::yaml()), NEON (Response::neon()) или автоматически по формату ответа (Response::parsed()). Приведение к строке возвращает сырое тело. При потоковой загрузке в файл тело в памяти не хранится — доступен путь назначения через Response::sinkPath().

Table of Contents

Interfaces

Stringable

Methods

__construct()  : mixed
__toString()  : string
Привести ответ к строке — возвращает сырое тело.
body()  : string
Тело ответа.
certificates()  : array<int, array<string|int, mixed>>
Цепочка сертификатов сервера (при включённом сборе в {@see Tuning}).
decodeWith()  : T
Разобрать тело пользовательским декодером.
effectiveUrl()  : string
Итоговый адрес после перенаправлений.
header()  : string
Значения заголовка, объединённые запятой.
headers()  : Headers
Заголовки ответа.
info()  : array<string|int, mixed>
Полные сведения об обмене (`curl_getinfo`): IP и порт сервера, размеры, число соединений, версия протокола и прочее.
isClientError()  : bool
Является ли ответ ошибкой клиента (класс 4xx).
isRedirect()  : bool
Является ли ответ перенаправлением (класс 3xx).
isServerError()  : bool
Является ли ответ ошибкой сервера (класс 5xx).
isSuccessful()  : bool
Успешен ли ответ (класс 2xx).
json()  : mixed
Разобрать тело ответа как JSON.
neon()  : mixed
Разобрать тело ответа как NEON.
parsed()  : mixed
Разобрать тело автоматически по формату ответа.
reason()  : string
Пояснительная фраза статуса.
redirects()  : array<int, string>
Адреса пройденных перенаправлений в порядке переходов.
saveTo()  : int
Сохранить тело ответа в файл.
sinkPath()  : string|null
Путь файла-приёмника при потоковой загрузке.
status()  : int
Код состояния HTTP.
throwIfError()  : $this
Выбросить исключение, если ответ — ошибка клиента или сервера (4xx/5xx).
timing()  : Timing
Тайминги выполнения.
withRedirects()  : self
Копия ответа с историей перенаправлений.
xml()  : array<string, mixed>
Разобрать тело ответа как XML.
yaml()  : mixed
Разобрать тело ответа как YAML.

Methods

__construct()

public __construct(int $status, string $reason, Headers $headers, string $body[, Timing $timing = new Timing() ][, string $effectiveUrl = '' ][, string|null $sinkPath = null ][, array<string|int, mixed> $info = [] ][, array<int, string> $redirects = [] ]) : mixed
Parameters
$status : int

код состояния HTTP

$reason : string

пояснительная фраза статуса

$headers : Headers

заголовки ответа

$body : string

тело ответа (пустое при потоковой загрузке в файл)

$timing : Timing = new Timing()

тайминги выполнения

$effectiveUrl : string = ''

итоговый адрес после перенаправлений

$sinkPath : string|null = null

путь файла-приёмника при потоковой загрузке

$info : array<string|int, mixed> = []

полные сведения об обмене (curl_getinfo)

$redirects : array<int, string> = []

адреса пройденных перенаправлений (по порядку)

__toString()

Привести ответ к строке — возвращает сырое тело.

public __toString() : string
Attributes
#[Override]
Return values
string —

тело ответа

body()

Тело ответа.

public body() : string
Return values
string —

тело (пустое при потоковой загрузке в файл)

certificates()

Цепочка сертификатов сервера (при включённом сборе в {@see Tuning}).

public certificates() : array<int, array<string|int, mixed>>
Return values
array<int, array<string|int, mixed>> —

сертификаты от сервера к корню

decodeWith()

Разобрать тело пользовательским декодером.

public decodeWith(callable(string): T $decoder) : T
Parameters
$decoder : callable(string): T

декодер тела

Tags
template
Return values
T —

результат декодера

effectiveUrl()

Итоговый адрес после перенаправлений.

public effectiveUrl() : string
Return values
string —

адрес (может быть пустым)

header()

Значения заголовка, объединённые запятой.

public header(string $name) : string
Parameters
$name : string

имя заголовка (регистр не важен)

Return values
string —

объединённые значения (пустая строка, если заголовка нет)

headers()

Заголовки ответа.

public headers() : Headers
Return values
Headers —

набор заголовков

info()

Полные сведения об обмене (`curl_getinfo`): IP и порт сервера, размеры, число соединений, версия протокола и прочее.

public info() : array<string|int, mixed>
Return values
array<string|int, mixed> —

сведения (пусто, если обработчик их не даёт)

isClientError()

Является ли ответ ошибкой клиента (класс 4xx).

public isClientError() : bool
Return values
bool —

true, если код в диапазоне 400–499

isRedirect()

Является ли ответ перенаправлением (класс 3xx).

public isRedirect() : bool
Return values
bool —

true, если код в диапазоне 300–399

isServerError()

Является ли ответ ошибкой сервера (класс 5xx).

public isServerError() : bool
Return values
bool —

true, если код >= 500

isSuccessful()

Успешен ли ответ (класс 2xx).

public isSuccessful() : bool
Return values
bool —

true, если код в диапазоне 200–299

json()

Разобрать тело ответа как JSON.

public json([bool $associative = true ]) : mixed
Parameters
$associative : bool = true

возвращать ли объекты как ассоциативные массивы

Tags
throws
JsonException

если тело не является корректным JSON

Return values
mixed —

декодированное значение

neon()

Разобрать тело ответа как NEON.

public neon() : mixed
Tags
throws
ResponseFormatException

если тело не является корректным NEON

Return values
mixed —

разобранное значение (отображение, список или скаляр)

parsed()

Разобрать тело автоматически по формату ответа.

public parsed() : mixed

Формат определяется по заголовку Content-Type и по содержимому тела. Для JSON, XML, YAML и NEON возвращается разобранное значение; для прочих типов — сырое тело как строка. Если заголовок и содержимое указывают на разные форматы, разбор считается неоднозначным.

Tags
throws
ResponseFormatException

при неоднозначном формате или ошибке разбора

Return values
mixed —

разобранное значение или сырое тело, если формат не распознан

reason()

Пояснительная фраза статуса.

public reason() : string
Return values
string —

фраза (может быть пустой)

redirects()

Адреса пройденных перенаправлений в порядке переходов.

public redirects() : array<int, string>
Return values
array<int, string> —

адреса (пусто, если перенаправлений не было)

saveTo()

Сохранить тело ответа в файл.

public saveTo(string $path) : int
Parameters
$path : string

путь назначения

Tags
throws
CurlException

если запись не удалась

Return values
int —

число записанных байт

sinkPath()

Путь файла-приёмника при потоковой загрузке.

public sinkPath() : string|null
Return values
string|null —

путь или null, если тело в памяти

status()

Код состояния HTTP.

public status() : int
Return values
int —

код состояния

throwIfError()

Выбросить исключение, если ответ — ошибка клиента или сервера (4xx/5xx).

public throwIfError() : $this
Tags
throws
HttpStatusException

для кодов 400 и выше

Return values
$this —

этот же ответ, если он не ошибочный

timing()

Тайминги выполнения.

public timing() : Timing
Return values
Timing —

тайминги

withRedirects()

Копия ответа с историей перенаправлений.

public withRedirects(array<int, string> $redirects) : self
Parameters
$redirects : array<int, string>

адреса пройденных перенаправлений

Return values
self —

новый ответ

xml()

Разобрать тело ответа как XML.

public xml() : array<string, mixed>
Tags
throws
ResponseFormatException

если тело не является корректным XML

Return values
array<string, mixed> —

дерево элементов (текст, атрибуты, потомки)

yaml()

Разобрать тело ответа как YAML.

public yaml() : mixed
Tags
throws
ResponseFormatException

если тело не является корректным YAML

Return values
mixed —

разобранное значение (отображение, список или скаляр)

On this page

Search results