curl -v ...
Örneğin giriş ve çıkış başlıklarını basan ayrıntılı modu kullanma . Ancak, bu bilgi borulu değil ve ihtiyacım olan hatları grep-out olamaz.
Curl header çıkışını nasıl filtreleyebilirsiniz?
curl -v ...
Örneğin giriş ve çıkış başlıklarını basan ayrıntılı modu kullanma . Ancak, bu bilgi borulu değil ve ihtiyacım olan hatları grep-out olamaz.
Curl header çıkışını nasıl filtreleyebilirsiniz?
Yanıtlar:
curl -v
(Ayrıntılı mod) kullanmak yerine, curl
tüm ekstra hata ayıklama işleri olmadan başlıkları STDOUT'ye çıktısını almak ve cesedi yanıttan çıkarmaktır. Bu yolla, tam olarak yanıt başlıklarını araştırabilir, kabuk yeniden yönlendirme ihtiyacından kaçınabilir ve filtrelemenizin curl
iç hata ayıklama mesajlarını (muhtemelen kendi API'sinin bir parçası olarak kabul edilmeyen) anlamak ve ayrıştırmak zorunda kalmayacağını bilirsiniz .
Bunu yapabilecek birleştirerek -I
(damla gövdesini), -X«METHOD»
(geçersiz kılma yöntemi) ve -s
parametreleri (sessiz, ilerleme çubukları damla) .
curl -sIXGET https://www.google.com/ | grep -vi content-length
-s
ilerleme çubuklarını gizleme talimatı curl
verir . İhmal edilir ve bir terminalde çalıştığını tespit ederse, boruyu atlar ve genellikle faydasız olan ve terminali sıkıştıran ilerleme çubukları göstermek için doğrudan terminalle konuşur.curl
-I
talimatını curl
başlıklar alındıktan yerine vücut için bekledikten sonra sunucudan bağlantısını kesmek için. Bu, aslında, sorunuzda belirtildiği gibi, yalnızca HTTP yanıt başlıklarıyla uğraşmakla ilgileniyorsanız yararlıdır . Ayrıca, istek yöntemini belirttiğiniz HEAD
gibi değiştirmenin de yan etkisi vardır -XHEAD
.-X«method»
(örneğin, -XGET
) yöntemi geçersiz kılar. Çoğu durumda, HEAD
isteğin ne istediğidir çünkü HTTP standardı HEAD
aynı başlıkları aynı GET
istekle döndürmesi gerektiğini söyler . Bununla birlikte, bir sunucuda hata ayıklama yaparken veya standarda uymayan biriyle çalışırken, curl
bir GET
talepte bulunma talimatını vermek, ancak yanıt kuruluşunu okumadan önce bağlantıyı kesmek yararlı olabilir . Bu şekilde, görebileceğiniz gerçek sunucu yanıt olarak göndermek istiyorum başlıkları yerine sunucusunun doğru uygulanan umuduyla.GET