我正在尝试用httr访问一个开放的API,但是没有运气。每当我尝试:
httr::GET("https://api.openaq.org/v1/countries")我得到以下错误:
Error in curl::curl_fetch_memory(url, handle = handle) :
SSL connect error但是,其他与https的连接工作得很好,例如
httr::GET("https://httpbin.org/get")这是sessionInfo()的输出
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.3 LTS
locale:
[1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
[5] LC_MONETARY=en_CA.UTF-8 LC_MESSAGES=en_CA.UTF-8
[7] LC_PAPER=en_CA.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
loaded via a namespace (and not attached):
[1] httr_1.0.0.9000 R6_2.1.2 tools_3.2.3 curl_0.9.5 在终点站,如果我运行curl-config --version,就会得到
libcurl 7.35.0更新:我尝试过的东西
openssl (在这个答案中)检查ssl证书curl、RCurl和httrcurl -v "https://api.openaq.org/v1/countries"
我无法理解命令行curl是如何工作的,但是R中的curl失败了。
更多的更新-- verbose不起作用
我已经尝试从R获得更多的信息,让httr变得详细。它会产生相同的错误:
httr::GET("https://api.openaq.org/v1/countries", httr::verbose()) Error in curl::curl_fetch_memory(url, handle = handle) : SSL connect error与httr::GET("https://api.openaq.org/v1/countries", httr::verbose(ssl=TRUE))相同
发布于 2016-01-28 14:53:16
SSL握手失败。一些潜在的原因:
apt-get install libcurl4-openssl-dev。发布于 2016-01-28 14:54:11
解决了这个问题(在@Jeroen和富菲茨的帮助下)
首先,我在航站楼运行了以下命令:
sudo apt-get install libcurl4-openssl-dev
然后卸载并重新安装R中的curl:
install.packages("curl")
https://stackoverflow.com/questions/35055715
复制相似问题