curl -f – Oprire cu cod de ieșire non-zero la erori HTTP (4xx / 5xx) în Comenzi cURL

Eșuează silențios și returnează un cod de ieșire de eroare (22) dacă serverul răspunde cu coduri 400+, fără a afișa corpul paginii de eroare.

Sintaxă
curl -f <url>
curl --fail <url>
curl -fsS <url>

Ce face curl -f - Oprire cu cod de ieșire non-zero la erori HTTP (4xx / 5xx)

În mod standard, dacă un server web returnează un cod de eroare HTTP (de exemplu `404 Not Found` sau `500 Internal Server Error`), curl consideră transferul un succes (cod de ieșire `0`) deoarece conexiunea s-a încheiat.

Opțiunea -f (sau --fail) schimbă acest comportament: la orice cod HTTP >= 400, curl se oprește imediat și returnează codul de eroare 22 în sistem.

Este crucială în scripturi CI/CD (GitHub Actions, Jenkins, bash) pentru a opri fluxul de execuție la eșec.

Exemple

Exemplul 1: Verificarea într-un script bash dacă o resursă există pe server

Oprește execuția scriptului dacă pagina returnează cod 404.

if curl -fsS https://api.dexblog.ro/pachete/v2.tar.gz -o pachet.tar.gz; then
  echo "Descărcare reușită!"
else
  echo "Eroare: Pachetul nu există pe server!"
fi

Ieșire în terminal

Eroare: Pachetul nu există pe server!

Greșeli frecvente

  • Folosirea opțiunii -f când doriți să analizați corpul de răspuns JSON de eroare (ex: detalii de validare 422); în acel caz se recomandă ‘–fail-with-body’.

Comenzi înrudite