从远程 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")
解决了问题。
我想从远程 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")
解决了问题。