Curl, um nur den HTTP-Statuscode von der Befehlszeile zurückzugeben

Curl, um nur den HTTP-Statuscode von der Befehlszeile zurückzugeben

Ich habe unten curl, das Daten aus einer Datei liest und auf den Server sendet, und alles funktioniert einwandfrei. Ich bekomme auch die Antwort erfolgreich zurück.

curl -v 'url' -H 'Akzeptierte Kodierung: gzip, deflate, br' -H 'Inhaltstyp: application/json' -H 'Akzeptiert: application/json' -H 'Verbindung: Keep-Alive' -H 'DNT: 1' -H 'Ursprung: URL' --data-binary "@/Users/david/Downloads/temp.txt" --compressed

Jetzt versuche ich nur, den Statuscode aus der obigen Curl-Anfrage statt der vollständigen Antwort zu erhalten. Ich habe es wie unten beschrieben versucht, aber es funktioniert nicht.

curl -v 'url' -H 'Akzeptierte Kodierung: gzip, deflate, br' -H 'Inhaltstyp: application/json' -H 'Akzeptiert: application/json' -H 'Verbindung: Keep-Alive' -H 'DNT: 1' -H 'Ursprung: URL' --data-binary "@/Users/david/Downloads/temp.txt" --compressed | head -n 1 | cut -d$' ' -f2

Ist an meinem obigen Befehl etwas falsch?

Antwort1

Entfernen -vund hinzufügen--silent, verwerfen Sie stdout mit--output /dev/null und drucke den http-Status mit--write-out '%{http_code}'(Zusamenfassend -s -o /dev/null -w '%{http_code}'):

curl 'url' \
  -H 'Accept-Encoding: gzip, deflate, br' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Connection: keep-alive' \
  -H 'DNT: 1' \
  -H 'Origin: url' \
  --data-binary "@/Users/david/Downloads/temp.txt" \
  --compressed \
  --silent \
  --output /dev/null \
  --write-out '%{http_code}'

verwandte Informationen