Curlはコマンドラインからhttpステータスコードのみを返します。

Curlはコマンドラインからhttpステータスコードのみを返します。

以下には、ファイルからデータを読み取ってサーバーに公開するカールがあり、すべてがうまく機能します。私も首尾よく答えを受けました。

curl -v 'url' -H 'エンコードを許可: gzip, deflate, br' -H 'コンテンツタイプ: application/json' -H '承認: application/json' -H '接続: 接続を維持' -H 'DNT : 1' -H 'ソース: url' --data-binary "@/Users/david/Downloads/temp.txt" --compression

今回のレスポンスではなく、上記のカールリクエストからステータスコードを取得したいと思います。以下のようにしてみましたがうまくいきません。

curl -v 'url' -H 'エンコードを許可する: gzip, deflate, br' -H 'コンテンツタイプ: application/json' -H '承認: application/json' -H '接続: 接続を維持' -H 'DNT: 1' -H 'source:url' --data-binary "@/Users/david/Downloads/temp.txt" --compression|header-n 1|cut-d$''-f2

上記のコマンドに問題がありますか?

答え1

削除-vと追加--silent、標準出力の廃棄--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}'

関連情報