cURL 在不允许时收到 HTTP/0.9,但安装了 nghttp2

Fib*_*con 4 aws curl 20.04

我正在尝试为 Monero 节点设置钱包 RPC,但是当我使用 cURL 到该端口时,出现此错误:

curl: (1) Received HTTP/0.9 when not allowed
Run Code Online (Sandbox Code Playgroud)

但是,检查 curl --version 给了我这个:

curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Run Code Online (Sandbox Code Playgroud)

我认为只有在没有 nghttp2 的情况下编译 cURL 时才会出现该错误。这是一个 AWS 环境,运行 20.04。

小智 20

curl --http0.9
Run Code Online (Sandbox Code Playgroud)

会帮助你的。升级后我收到了同样的错误消息curl


Car*_*teo 5

很高兴看到您完整的 curl 请求。HTTP/0.9 是 1991 年的,在基本的 HTTP/1.0 之前,所以我认为问题是来自服务器的响应。

请尝试:

  1. 带有 --verbose 参数的 curl 命令可以输出所有信息。

  2. 尝试使用 curl 和 wget 尝试使用相同的 url 以及保存的文件的内容是什么。如果从新的空文件夹中执行。

  3. telnet 到该端口并键入:GET / HTTP/1.0

哪里只是按回车键。

并查看输出。也许您正试图打开错误的端口。

  1. 有时问题出在证书上。尝试使用参数:--ssl --sslv2 --sslv3

  2. 您还可以强制执行:--http1.1 --http2

此外,您的组织或 ISP 可能正在使用透明代理来捕获请求或使用 SSL 证书导致问题。

干杯

  • 我永远不会认为他们在他们自己的文档中所说使用的端口是错误的,但我们在这里。 (2认同)
  • 是的,非常令人失望,但那些事情确实发生了。有一天,他们决定更改端口,但没有人意识到文档已经过时。也许从事这项出色工作的优秀工程师离开了。很高兴问题已为您解决!:)干杯 (2认同)