最佳答案
我编写了一个 bash 脚本,它使用 curl 从一个网站获取输出,并对 html 输出进行大量字符串操作。问题在于,当我在一个返回 gzip 输出的站点上运行它时。用浏览器访问网站效果很好。
当我手动运行 curl 时,会得到 gzip 输出:
$ curl "http://example.com"
下面是这个网站的标题:
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
我知道返回的数据是 gzip 压缩的,因为这将如期返回 html:
$ curl "http://example.com" | gunzip
我不希望通过 gunzip 管道输出,因为脚本在其他站点上按原样工作,而通过 gzip 管道输出会破坏该功能。
一无所获
有什么想法吗?