Curl kullanarak bir web sitesinden çıktı alır ve html çıktısında bir dizi dize manipülasyonu yapan bir bash komut dosyası yazdım. Sorun, çıktılarını döndüren bir siteye karşı çalıştırdığım zamandır. Siteye bir tarayıcıda gitmek iyi çalışıyor. İşte Kıvrılma kullanırken gzip bir sayfa nasıl düzgün şekilde kullanılır?
$ curl "http://example.com"
o belirli sitesinden başlık var: Ben elle bukle çalıştırdığınızda
, ben gzip çıktı almak bu döndürdüğü için, ben döndürülen veri gzipli olduğunu biliyoruz
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=utf-8
X-Powered-By: PHP/5.2.17
Last-Modified: Sat, 03 Dec 2011 00:07:57 GMT
ETag: "6c38e1154f32dbd9ba211db8ad189b27"
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: must-revalidate
Content-Encoding: gzip
Content-Length: 7796
Date: Sat, 03 Dec 2011 00:46:22 GMT
X-Varnish: 1509870407 1509810501
Age: 504
Via: 1.1 varnish
Connection: keep-alive
X-Cache-Svr: p2137050.pubip.peer1.net
X-Cache: HIT
X-Cache-Hits: 425
html Beklendiği gibi:
$ curl "http://example.com" | gunzip
Komut dosyası çalışırken çıktıyı gunzip ile borulamak istemiyorum diğer sitelerde olduğu gibi, ve gzip ile borulama bu işlevselliği bozardı. Ben kullanıcı aracısı değişen
- denedim ne
- adam kıvrılıp (benim tarayıcınızın gönderdiği aynı dizeyi, "Mozilla/4.0", vb çalıştı)
- google search
- stackoverflow arama
Her şey
kadar boş geldiHerhangi bir fikrin var mı?
Güzel! Bir şampiyon gibi çalışır. Teşekkür ederim. – BryanH
+1 sonunda 4 saatlik bir arama sona erdi - sıkıştırılmış. Teşekkürler! – Eugene
Bu bir curl hatası gibi görünecektir, çünkü kod çözme isteğine göre yanıtı tetiklemelidir çünkü (gzip'i desteklediğinden). HTTP 1.1'den alıntı yapmak için: "Bir istekte Accept-Encoding alanı yoksa, sunucu, istemcinin herhangi bir içerik kodlamasını kabul edeceğini varsayabilir." Ancak, bu durumda sunucuların içeriği kodlamaması gerektiğini söylemektedir, hmm, figürü git. –