Vraag Krul om de HTTP-statuscode samen met het antwoord te retourneren


Ik gebruik krul om http-headers te krijgen om de HTTP-statuscode te vinden en ook de respons terug te sturen. Ik krijg de http-headers met het commando

curl -I http://localhost

Om het antwoord te krijgen, gebruik ik het commando

curl http://localhost

Zodra ik de vlag -I gebruik, krijg ik alleen de headers en is het antwoord er niet meer. Is er een manier om zowel het http-antwoord als de headers / http-statuscode in één opdracht te krijgen?


25
2017-08-11 21:46


oorsprong


antwoorden:


Ik kon een oplossing krijgen door te kijken naar de curl-doc die aangeeft te gebruiken - voor de uitvoer om de uitvoer naar stdout te krijgen.

curl -o - http://localhost

Om het antwoord te krijgen met alleen de http-retourcode, zou ik het gewoon kunnen doen

curl -o /dev/null -s -w "%{http_code}\n" http://localhost

35
2017-08-11 21:59



Ik gebruik deze opdracht om de statuscode af te drukken zonder enige andere uitvoer. Bovendien voert het alleen een HEAD-verzoek uit en volgt het de omleiding (respectievelijk -I en -L).

curl -o -I -L -s -w "%{http_code}" http://localhost

Dit maakt het zeer eenvoudig om de statuscode te controleren in een gezondheidsscript:

sh -c '[ $(curl -o -I -L -s -w "%{http_code}" http://localhost) -eq 200 ]'

16
2017-09-01 17:52



Ik heb dit gebruikt:

    request_cmd="$(curl -i -o - --silent -X GET --header 'Accept: application/json' --header 'Authorization: _your_auth_code==' 'https://example.com')"

Om de HTTP-status te krijgen

    http_status=$(echo "$request_cmd" | grep HTTP |  awk '{print $2}')
    echo $http_status

Om het antwoordapparaat te krijgen, heb ik dit gebruikt

    output_response=$(echo "$request_cmd" | grep body)
    echo $output_response

10
2018-04-26 14:07



de uitgebreide modus zal u alles vertellen

curl -v http://localhost

7
2017-10-11 08:42