我在执行 ping 美国海军天文台 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...
Run Code Online (Sandbox Code Playgroud)
我正在运行 R v3.5.1 和 RStudio v1.1.463。Curl 是 v3.2,httr 是 v1.3.1。
我尝试过的故障排除方法无效:
R 用户有什么想法吗?非常感谢任何帮助或指出正确方向!
经过一番搜索,找到了答案。API从http切换到https,导致SSL错误。通过在运行“GET”之前将此参数设置为 httr 来修复:
httr::set_config(config(ssl_verifypeer = 0L))
Run Code Online (Sandbox Code Playgroud)
因此,如果您像这样修改上面的 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))
Run Code Online (Sandbox Code Playgroud)
希望这对某人有帮助!
| 归档时间: |
|
| 查看次数: |
3852 次 |
| 最近记录: |