У меня есть bash-скрипт, который вызывает curl через прокси. Сегодня возникла проблема с местом загрузки.
Вызов curl завершается с:
curl: (18) transfer closed with 7512708716 bytes remaining to read
Хотя эта ошибка возникает, код возврата остается 200, так что мой сценарий «думает», что все в порядке.
Как я могу сказать curl, чтобы получить другой код возврата, отличный от http-200?
curl --fail
выполняет часть того, что вы хотите:
из man curl
:
-f, --fail
(HTTP) Ошибка без вывода сообщений (нет вывода вообще) на ошибки сервера. В основном это делается для лучшего включения скриптов и т. Д., Чтобы лучше справляться с неудачными попытками. В обычных случаях, когда HTTP-сервер не может доставить документ, он возвращает HTML-документ с указанием этого (который часто также описывает причину и многое другое). Этот флаг предотвратит вывод команды curl и возврат ошибки 22.
Этот метод не является отказоустойчивым, и бывают случаи, когда неуспешные коды ответа будут проскальзывать, особенно когда задействована аутентификация (коды ответов 401 и 407).
Но он блокирует вывод на экран.