【发布时间】:2021-04-29 10:12:17
【问题描述】:
美好的第一天。 我一直在使用 RCurl 来加载 https://raw。来自我们的 GitHub 存储库的表格,用于数据清理和分析。最近(可能是两周)每个脚本都在使用:
read.csv(text = getURL())
停止工作,抛出这样的错误:
Error in function (type, msg, asError = TRUE) : error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
不幸的是,我对 SSL 和相关问题的理解非常有限(我仍然 git 在 bash 中使用登录凭据)。 问题是,在我工作的 Debian 机器上,代码可以完美执行。在删除 geURL() 并坚持使用简单的 read.csv() 后,即使是 Windows 代码也可以工作。 这很好,但我有依赖于 url.exists() 的函数,这些函数也被破坏了,我无法找到替代它。
version
_
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 0.3
year 2020
month 10
day 10
svn rev 79318
language R
version.string R version 4.0.3 (2020-10-10)
nickname Bunny-Wunnies Freak Out
提前感谢您提供任何可能使我更接近解决方案的内容。
【问题讨论】:
-
前段时间,GitHub 放弃了对 1.2 之前的 TLS 版本的支持,这似乎可能会导致您的问题。由于它是 Windows,因此您安装的 Windows 可能缺少更新的库。您可以尝试使用
FN <- tempfile(); download.file(getURL(), FN, method="libcurl")进行预下载,看看是否会产生不同的结果。 -
嗨。首先,感谢您的快速回答。其次,我在 R 中运行命令,它确实产生了以下结果:
Error in getURL() : argument "url" is missing, with no default -
我使用您的示例代码作为模板。将我的代码中的
getURL()替换为您尝试使用的任何 URL。 -
我明白了。重新运行它,我得到与描述的问题完全相同的错误。
-
好吧,对不起,这是一个想法。