r - curl 错误 - SSL 证书问题 : unable to get local issuer certificate

标签 r ssl curl httr

我在执行 ping US Naval Observatory API 的 GET 调用时遇到困难。此请求以前有效,但现在由于未知原因而失败。

请求如下:

library(httr)

#ping API
try(RETRY("GET", url = "http://api.usno.navy.mil/rstt/oneday?date=07/10/2018&coords=41.2792778,%20-96.06442261&tz=-5", times = 20))

#ERROR MESSAGE (request always times out with error)
#Error in curl::curl_fetch_memory(url, handle = handle): SSL certificate problem: #unable to get local issuer certificate
#Request failed [ERROR]. Retrying in 1 seconds...

我正在运行 R v3.5.1 和 RStudio v1.1.463。 curl 是 v3.2,httr 是 v1.3.1。

我尝试过的故障排除方法无效:

  • 仔细检查 US Naval Observatory API 文档以确保请求仍然正确/最新(确实如此)。
  • 安装此调用所用的先前版本的 R (v.3.4.4)(无变化)。
  • 更新到最新版本的 RStudio(v.1.1.463,无变化)
  • 此站点 (quantmod - SSL: unable to get local issuer certificate in R) 中列出的解决方案未做任何更改。这是我可以在网上找到的与 R 中的此错误唯一相关的线程。

R 用户有什么想法吗?非常感谢任何帮助或指向正确方向的观点!

最佳答案

经过一番搜索,找到了答案。 API 从 http -> https 切换,导致 SSL 错误。通过在运行“GET”之前将此参数设置为 httr 来修复:

httr::set_config(config(ssl_verifypeer = 0L))

因此,如果您像这样修改上面的 API 调用,它会起作用:

library(httr)
httr::set_config(config(ssl_verifypeer = 0L))

#ping API
try(RETRY("GET", url = "https://api.usno.navy.mil/rstt/oneday?date=07/10/2018&coords=41.2792778,%20-96.06442261&tz=-5", times = 20))

希望这对某人有帮助!

关于r - curl 错误 - SSL 证书问题 : unable to get local issuer certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53636902/

相关文章:

适用于应用程序的 Facebook SSL

api - Okta API 入门错误设置证书类型 |获取用户应用程序 api 调用

Docker 构建退出,退出代码为 : 1

r - 如何使用 kbl format = "markdown"指定 kableExtra 选项?

r - 从 DateTime 向量中获取小时

ssl - DNS 中是否弃用了 CERT 记录?

java - 是否可以使用 Java SDK 通过反向代理连接到 Azure Cosmos DB?

curl - Jenkins 反向代理到替代端口号

r - Purrr(或扫帚)用于计算分组数据集的比例测试(多比例测试)

r - 如何创建一个函数来获取汇总统计数据作为列?