Код состояния HTTP Bash curl как переменная - PullRequest
0 голосов
/ 28 июня 2018

У меня есть звонок:

curl --silent --connect-timeout 8 --output /dev/null http://0.0.0.0:5000/twi?c0=24 -I -w "%{http_code}\n" ``

Работает нормально и возвращает 200 в случае успеха. Я хочу код состояния в переменной и пробовал:

curl --silent --connect-timeout 5 --output /dev/null http://0.0.0.0:5000/twi?c0=24

А потом:

curl_status=$?
echo $curl_status

Этот вызов работает хорошо, но возвращает 0 как $ curl_status.

Я пытался:

curl_status=$(curl --silent --connect-timeout 5 --output /dev/null http://0.0.0.0:5000/twi?c0=24)
echo $curl_status

С тем же результатом: вызов выполняется, но дает 0 как $ url_status.

Почему я не получаю http_code первого вызова в переменную для использования в операторе if? Я прочитал много постов здесь безуспешно для решения.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

С помощью ссылки из Biffen и примера из https://coderwall.com/p/taqiyg/use-http-status-codes-from-curl Я пришел к

curl_status=$(curl -s -o /dev/null -w '%{http_code}' --connect-timeout 3 http://0.0.0.0:5000/twi?c0=24+91+24+91+24+91+24+91)``

Спасибо за помощь.

0 голосов
/ 28 июня 2018

Попробуйте

curl_status=`curl --silent --connect-timeout 8 --output /dev/null http://0.0.0.0:5000/twi?c0=24 -I -w "%{http_code}\n"`

Если вы хотите следовать перенаправлениям, используйте -L

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...