从远程 Linux 服务器上的 R 调用 Companies House API 时出现 SSL 连接错误

SSL Connect Error when Calling Companies House API from R on remote Linux Server

我想从远程 Linux 服务器 运行ning Ubuntu 上的 R 内部呼叫 Companies House API 14.04 长期支持。 我从终端启动 R,并使用 'httr' 包并发出以下 GET 请求(使用 'Paul+Dodd' 作为示例搜索词):

call <- GET("https://api.companieshouse.gov.uk/search/companies?q=Paul+Dodd&items_per_page=50&start_index=1", authenticate("API_KEY_HERE", ""))

您可以申请 Companies House API 密钥并在此处获取有关 API 的更多信息: https://developer.companieshouse.gov.uk/api/docs/index.html

API 调用的响应应该是公司信息的复杂列表。

但是我收到以下错误:

错误 curl::curl_fetch_memory(url, handle = handle) : SSL 连接错误

我试过set_config( config( ssl_verifypeer = 0L ) ),它偶尔会给出正确的响应对象,但通常会给出上面的 SSL 错误或以下错误:

接收对端数据失败

当 运行ning R 在我的 Windows 桌面(运行ning Windows 7)和我的 [=59] 上时,上述 API 调用有效=]. API 调用来自多个 IP 地址。

我已经在远程服务器上安装了以下依赖,并进行了升级更新,但错误依旧:

sudo apt-get upgrade
sudo apt-get update
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libssl-dev

最后,当我退出 R 并 运行 远程服务器终端中的 API 调用时,我得到了正确的响应。我使用的命令如下:

curl -u"API_KEY_HERE": https://api.companieshouse.gov.uk/search/companies?q=Paul+Dodd&items_per_page=50&start_index=1

我怀疑 R 中的 SSL 连接错误可能是 CA 证书的问题,但我对 SSL 的了解有限。关于我如何解决这个问题,以便我可以使用 httr 从 R 中调用 API,你有什么建议吗?

经过反复试验,我发现安装以下软件包: jsonlite、mime、curl (≥ 0.9.1)、openssl (≥ 0.8)、R6 使用:

install.packages("package_name")

解决了问题。