为什么libcurl不';t升级到HTTP/2的连接?

为什么libcurl不';t升级到HTTP/2的连接?,curl,post,libcurl,http2,Curl,Post,Libcurl,Http2,我想将帖子发送到支持HTTP/2的网站,但libcurl不使用该HTTP版本,而是在显示响应(二进制数据)时使用1.1和程序“beep”。如何正确显示响应和使用HTTP/2 我做了什么来解决问题: -使用nghttp2和OpenSSL构建libcurl, -将库CURLOPT_HTTP_VERSION选项更改为CURL_HTTP_VERSION_2_0,二进制数据是一个单独的问题,但要强制libcurl使用http2,如果您知道目标服务器支持它,请尝试设置CURLOPT_HTTP_VERSION

我想将帖子发送到支持HTTP/2的网站,但libcurl不使用该HTTP版本,而是在显示响应(二进制数据)时使用1.1和程序“beep”。如何正确显示响应和使用HTTP/2

我做了什么来解决问题: -使用nghttp2OpenSSL构建libcurl,
-将库CURLOPT_HTTP_VERSION选项更改为CURL_HTTP_VERSION_2_0

二进制数据是一个单独的问题,但要强制libcurl使用http2,如果您知道目标服务器支持它,请尝试设置
CURLOPT_HTTP_VERSION
CURL\u HTTP\u VERSION\u 2\u先验知识

curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE);
至于你的二进制数据问题。。。这可能是一个有缺陷的http服务器,它发送压缩响应,即使请求没有指定“接受编码”头。。。将CURLOPT_VERBOSE设置为1以进行验证(如果您的请求不包含标题“Accept Encoding”,并且响应包含“Encoding:”header,这是您的二进制问题。要解决它,通常只需将CURLOPT_ENCODING设置为emptystring即可,然后curl将尝试自动为您解压,前提是它是curl实际支持的编码。否则,您需要自己解压。)