Задать вопрос
@runprogr

Как получить статус запроса без скачивания контента?

По ссылке лежит огромный файл. Этот файл скачивается прямым ГЕТ запросом со стороннего сервиса и используется во внутренней логике проекта.
Необходимо всегда следить, чтобы ссылка на этот файл была в актуальном состоянии (не померла).
Интересует способ, как можно быстро кинуть запрос на url, получить в ответ статус (200 , если ссылка жива), и при этом НЕ скачивать сам файл. Потому что хочу добавить эту проверку в автоматические тесты, тесты будут запускаться постоянно и по понятным причинам даже лишние секунды, а уж тем более минуты, потраченные на скачку файла, мне тут не нужны
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
@runprogr Автор вопроса
Видимо в некоторых случаях сервер может отдавать вместе с HEAD еще и BODY.
Либо же это именно проблема guzzle.
Но в моему случае при запросе HEAD идет скачка всего файла целиком

Есть костыль как это победить, если у кого будет такая же ситуация
$client = new \GuzzleHttp\Client();
$response = $client->head($url, [
            'stream' => true,
            'read_timeout' => 1,
]);
$this->assertEquals(200, $response->getStatusCode());

Таким образом будет ограничение по времени на скачку не более 1с, дальше будет сбрасываться соединение.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽