我如何使用curl
获取页面brotli 压缩?
根据发行说明这应该可以做到。我的 curl 版本似乎没问题:
$ curl -V
curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL
apt-get install
还声称curl is already the newest version (7.58.0-2ubuntu3.8).
但是,当我尝试获取页面时出现错误:
$ curl --compressed https://httpbin.org/brotli
curl: (61) Unrecognized content encoding type. libcurl understands deflate, gzip content encodings.
$ curl https://httpbin.org/brotli
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
我遗漏了什么?我也尝试安装libbrotli-dev
,但这并没有改变任何东西。
答案1
一种选择是使用独立 brotli 工具解压缩文件,例如
curl https://httpbin.org/brotli | brotli -d -
答案2
您需要等到 Ubuntu 将 libbrotli 支持添加到 curl(可能在 Ubuntu 20)...或者使用 brotli 支持重新编译 curl。
“重新编译”可能听起来很可怕,但实际上相当简单,在这里你可以找到有关它的说明 ->https://curl.haxx.se/docs/install.html(请确保添加新选项--with-brotli
和上面提到的 libbrotli-dev 包以正常工作)。