首页 > 解决方案 > 将 http 1.1 设置为默认 libcurl linux

问题描述

我正在开发一个 R 项目,它通过 GTrends 库向 Google Trends 发出一些 http 请求。但是,当我提出请求时,我收到此错误:

Error in curl::curl_fetch_memory(url, handle = handle): Stream error in the HTTP/2 framing layer.

我搜索了一个解决方案,发现需要在 curl 中禁用 http2,如下所述:然而,提供的解决方案handle_setopt(handle, http_version = 0L)不起作用,至少对我来说。Curl 文档说:从 7.47.0 开始,curl 工具默认为 HTTPS 连接启用 HTTP/2。那么,有谁知道如何将 http 1.1 设置为默认值以避免此错误?我正在使用 Ubuntu 18.04 LTS 和 curl 7.58.0。我很感激任何帮助。谢谢。

标签: rhttpcurllibcurl

解决方案


默认意味着除非您设置另一个版本,否则使用什么。因此,您将 1.1 设置为所需的协议版本将覆盖默认的 libcurl 本身将使用。

也就是说,不要将 curl 工具与 libcurl 库混淆。如果您使用该库,那么命令行工具的默认选择对您来说应该无关紧要!


推荐阅读