У меня есть 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 'Принять-Кодирование: gzip, deflate, br' -H 'Тип-Содержимого: application/json' -H 'Принять: application/json' -H 'Подключение: keep-alive' -H 'DNT: 1' -H 'Происхождение: 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}'