#curl
#curl
Вопрос:
Я использую curl для GET в командной строке Linux, чтобы получить код ответа http. Тела ответов печатаются в соответствии со стандартом out, что нормально, но я не вижу никакого решения, как заставить curl for POST печатать код состояния HTTP (200, 404, 403 и т.д.). Возможно ли это?
Ответ №1:
Чтобы получить только http_code
, вы могли бы попробовать:
curl -s -o /dev/null --head -w "%{http_code}" -X POST "https://httpbin.org/post"
вы можете прочитать / запомнить это как:
-s
Беззвучный режим-o
Записать выходные данные в /dev /null--head
Получить только заголовки-w "%{http_code}"
запишите код состояния HTTP
Чтобы получить все заголовки из вашего запроса, попробуйте:
curl -I -X POST "https://httpbin.org/post"
Он вернет что-то вроде:
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Content-Type: application/json
Date: Thu, 28 Mar 2019 20:12:01 GMT
Server: nginx
Content-Length: 294
Connection: keep-alive
Комментарии:
1. Как использовать эту команду в командной строке Windows я попробовал команду
curl -I -s -w %{http_code} server:8080/page/
, и она выдаетcurl: no URL specified!
2. Я предполагаю, что вам нужно указать протокол в целевом URL-адресе следующим образом: curl -I -s -w%{http_code} server: 8080 / page
Ответ №2:
curl -X POST --write-out %{http_code} --silent --output /dev/null --data "{your_json_input}}" -H 'Content-Type:application/json' http://your_url
Ответ №3:
Более новые версии curl
имеют --fail-with-body
то же возвращаемое значение, что и --fail
, но все еще печатают тело ответа.