如何在MacOS X上将curl命令与http/2一起使用
时间:2020-01-09 10:44:03 来源:igfitidea点击:
如何在http2 /协议中使用curl命令?
我收到一条错误,内容如下:
curl -I --http2 https://google.com``curl:(1)不支持的协议
如何解决此问题,并在Mac OS X或者MacOS Sierra上将cURL与HTTP/2一起使用?
curl的默认版本不支持HTTP/2。
这是我在MacOS sierra上的当前版本:
$ curl --version
因此,如果我尝试将--http2
选项传递给curl命令,则会在屏幕上看到以下错误:
$ curl -I --http2 https://theitroad.com/ `curl: (1) Unsupported protocol`
修复curl:(1)MacOS上不支持的协议错误
如下使用brew命令,使用nghttp2安装curl。
nghttp2是HTTP/2及其标头压缩算法HPACK在C语言中的实现。
您需要按以下方式编译和安装cURL:
$ brew update $ brew upgrade $ brew install curl --with-nghttp2
示例输出:修复卷曲:(1)Mac OS X上不支持的协议
请记下路径/usr/local/Cellar/curl/7.50.3/bin/curl
在您的~/bin /中创建一个短链接
执行以下命令:
$ mkdir $HOME/bin/ $ cd ~/bin/ $ ln -s /usr/local/Cellar/curl/7.50.3/bin/curl $ ~/bin/curl --version
输出示例:
curl 7.50.3 (x86_64-apple-darwin16.1.0) libcurl/7.50.3 OpenSSL/1.0.2j zlib/1.2.8 nghttp2/1.16.0 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets
我该如何测试?
将--http2
标志传递到启用了http2的站点:
$ ~/bin/curl -I --http2 https://bash.theitroad.local/
输出示例:
HTTP/2 200 server: nginx date: Tue, 01 Nov 2015 21:59:18 GMT content-type: text/html;charset=utf-8 vary: Accept-Encoding cache-control: public,max-age=900,s-maxage=900,must-revalidate expires: Tue, 01 Nov 2015 22:03:40 GMT etag: de8af9a212f436d9d4d45f4cc994b2ca last-modified: Mon, 05 Sep 2015 07:49:45 GMT front-end-https: on strict-transport-security: max-age=15768000 x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-xss-protection: 1
有关使用更新版本替换MacOS curl的说明
您可以创建公式的软链接,以用PATH magic替换系统cURL,
$ brew link curl --force $ curl --version