首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >httr / curl中的SSL连接错误

httr / curl中的SSL连接错误
EN

Stack Overflow用户
提问于 2016-01-28 07:56:16
回答 2查看 17.6K关注 0票数 8

我正在尝试用httr访问一个开放的API,但是没有运气。每当我尝试:

代码语言:javascript
复制
httr::GET("https://api.openaq.org/v1/countries")

我得到以下错误:

代码语言:javascript
复制
Error in curl::curl_fetch_memory(url, handle = handle) : 
   SSL connect error

但是,其他与https的连接工作得很好,例如

代码语言:javascript
复制
httr::GET("https://httpbin.org/get")

这是sessionInfo()的输出

代码语言:javascript
复制
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,就会得到

代码语言:javascript
复制
libcurl 7.35.0

更新:我尝试过的东西

  • 确认这是Ubuntu14.04最新版本的libcurl3
  • 使用openssl (在这个答案中)检查ssl证书
  • 卸载/重新安装curlRCurlhttr
  • 确认这在终端机上确实有效:

curl -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 errorhttr::GET("https://api.openaq.org/v1/countries", httr::verbose(ssl=TRUE))相同

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-28 14:53:16

SSL握手失败。一些潜在的原因:

  • 您使用的是gnutls,而不是openssl。试试:apt-get install libcurl4-openssl-dev
  • 您的libcurl确实过时了,不支持服务器所需的TLS版本。
票数 6
EN

Stack Overflow用户

发布于 2016-01-28 14:54:11

解决了这个问题(在@Jeroen和富菲茨的帮助下)

首先,我在航站楼运行了以下命令:

sudo apt-get install libcurl4-openssl-dev

然后卸载并重新安装R中的curl

install.packages("curl")

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35055715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档