PHP SDK: Response: ответ сайта
Переменная $response ниже получается через $ctx->http()->get($url). У ответа есть методы и доступные только для чтения свойства.
Методы
Свойства ответа
| Свойство | Смысл |
|---|---|
status |
HTTP-код, например 200 или 404 |
body |
Тело ответа строкой |
finalUrl |
URL после перенаправлений |
headers |
Заголовки ответа |
fromCache |
Был ли ответ взят из кэша |
durationMs |
Длительность в миллисекундах |
snapshotUuid |
UUID снимка или null |
ok
ok(): bool
Проверить, что HTTP-статус находится в диапазоне 200–299 и ответ не распознан как страница проверки CAPTCHA. Одна только страница с HTTP 200 ещё не означает, что данные доступны.
if (!$response->ok()) { $ctx->abort('Источник ответил HTTP ' . $response->status); }
Результат и особенности. Возвращает bool. Это проверка статуса, а не полноты данных.
dom
dom(): Dom
Разобрать тело ответа как HTML с учётом конечного URL после перенаправлений.
$dom = $response->dom();
$title = $dom->text('h1');
Результат и особенности. Возвращает Dom. Относительные ссылки будут разрешаться относительно finalUrl.
json
json(): array
Разобрать тело ответа как JSON.
$data = $response->json();
$items = $data['items'] ?? [];
Результат и особенности. Возвращает массив. Ошибочный JSON вызывает JsonException. Корень должен быть объектом или массивом.
header
header(string $name): ?string
Получить заголовок ответа без учёта регистра имени.
$mime = $response->header('Content-Type');
Результат и особенности. Возвращает строку или null. При нескольких значениях берётся первое.