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
curl -S - Afișarea erorilor în mod silențios (-sS): Combinat cu -s, ascunde bara de progres dar păstrează afișarea mesajelor critice de eroare pe stderr.curl -w - Extragerea metricilor de performanță și a variabilelor (Write-out): Afișează informații structurate și metrici precise de sincronizare și rețea la finalizarea transferului.