以下の curl はファイルからデータを読み取り、それをサーバーに投稿しますが、すべて正常に動作します。応答も正常に返されます。
curl -v '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
今、私は完全な応答ではなく、上記の curl リクエストからステータス コードを取得しようとしています。以下のようにしてみましたが、うまくいきません。
curl -v '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 | head -n 1 | cut -d$' ' -f2
上記のコマンドに何か問題がありますか?
答え1
削除-v
して追加--silent
、stdoutを破棄する--output /dev/null
そしてhttpステータスを印刷します--write-out '%{http_code}'
(要するに-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}'