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, curltü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 curliç 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 -sparametreleri (sessiz, ilerleme çubukları damla) .
curl -sIXGET https://www.google.com/ | grep -vi content-length
-silerleme çubuklarını gizleme talimatı curlverir . İ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-Italimatını curlbaş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 HEADgibi değiştirmenin de yan etkisi vardır -XHEAD.-X«method»(örneğin, -XGET) yöntemi geçersiz kılar. Çoğu durumda, HEADisteğin ne istediğidir çünkü HTTP standardı HEADaynı başlıkları aynı GETistekle döndürmesi gerektiğini söyler . Bununla birlikte, bir sunucuda hata ayıklama yaparken veya standarda uymayan biriyle çalışırken, curlbir GETtalepte 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