Soru Yanıtla birlikte http durum kodunu döndürmek için Curl


Http başlıklarının http durum kodunu bulmasını ve yanıt göndermesini sağlamak için curl kullanıyorum. Http başlıklarını komutla alırım

curl -I http://localhost

Cevabı almak için komutu kullanıyorum

curl http://localhost

-I bayrakını kullanır kullanmaz, sadece üstbilgileri alıyorum ve yanıt artık yok. Tek bir komutta hem http yanıtını hem de üstbilgi / http durum kodunu almanın bir yolu var mı?


26
2017-08-11 21:46


Menşei




Cevaplar:


Çıktının stdout'a ulaşması için kullanılacak olan curl belgesine bakarak çözüm bulabildim.

curl -o - http://localhost

Yanıtı sadece http dönüş koduyla almak için

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

35
2017-08-11 21:59



ya da kullanırsın -i. Ya da belki -v Ayrıca bazı ek bilgi isterseniz. - Daniel Stenberg
Teşekkürler @DanielStenberg. Kabul edilen cevap benim için işe yaramadı, sadece -i işe yaradı. - Alejandro Cotilla
kasten boş bir seçenek olmadığı sürece ikinci komutunuz eksik -I @randominstanceOfLivingThing? Onsuz benim için işe yaramıyor - mdo123
-o -I kelimenin tam anlamıyla adlandırılmış bir dosya oluşturmayı sona erdirir '-I'CWD'de. Bunu başka gören var mı? Bunun için çözüm -o/dev/null -I - JDS
-I kaldırıldı. Şimdi fark ettim ve düzelttim. - İhtiyacın yok. - randominstanceOfLivingThing


Durum kodunu başka bir çıktı olmadan yazdırmak için bu komutu kullanıyorum. Ayrıca, yalnızca bir HEAD isteği gerçekleştirir ve yönlendirmeyi takip eder (sırasıyla -I ve -L).

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

Bu durum, bir sağlık komut dosyasındaki durum kodunu kontrol etmeyi çok kolaylaştırır:

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

16
2017-09-01 17:52



Bu bir yıl önce zaten cevaplandırıldı. Cevabınız hangi yeni değeri getirir? Ayrıca cevabınıza biraz açıklama yazınız. - Maciej Jureczko
teşekkür ederim sevgili arkadaşım! - Ilja
@MaciejJureczko - Değer basit. Komut dosyası oluşturma amacıyla, bu cevap diğer tüm cevapların en iyisidir, çünkü söz konusu durum koduyla birlikte birçok çöp satırı yerine tek bir durum kodu verir. - aggregate1166877


Bunu kullandım:

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

HTTP durumunu almak için

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

Yanıt gövdesini almak için bunu kullandım

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

10
2018-04-26 14:07





ayrıntılı mod size her şeyi anlatacaktır

curl -v http://localhost

7
2017-10-11 08:42