卷曲:单线测试http / 2支持

时间:2018-07-11 05:51:32

标签: unit-testing curl http2

我目前正在编写单元测试,以检查是否支持http/2

是否有curl个单行代码可以检查是否支持http/2并输出易于解析的响应?

4 个答案:

答案 0 :(得分:7)

支持HTTP / 2:

$ curl -sI https://curl.haxx.se -o/dev/null -w '%{http_version}\n'
2

不支持HTTP / 2(在这种情况下,服务于1.1):

$ curl -sI http://curl.haxx.se -o/dev/null -w '%{http_version}\n'
1.1

(要使此命令行正常运行,必须使用curl 7.50.0或更高版本)

答案 1 :(得分:1)

在这里您可以找到list of Tools for debugging, testing and using HTTP/2

在命令行中最简单的一种可能是:

void *thr_func(void *arg){
  thread_data_t *data = (thread_data_t *)arg;
  ...
}

但这需要$ is-http2 www.cloudflare.com

对于使用npm install -g is-http2-cli进行测试,您可能需要使用nghttp库进行编译,在macOS中,可以通过使用curl来进行编译,您可以使用:

brew

然后您可以使用@ daniel-stenberg在他的答案中建议的内容

$ brew install curl --with-nghttp2

如果支持http2,您将在其中得到2。

答案 2 :(得分:1)

运行

curl --version

并在“功能”列表中查找HTTP2

答案 3 :(得分:0)

我用过

curl -kvso /dev/null --http2 https://app.domain.com:443

返回了

...
> GET / HTTP/2
...
< HTTP/2 302
...

这不是检查HTTP2是否受支持,而是检查HTTP2是否真正起作用。