【问题标题】:R - Error when using getURL from curl after site was changedR - 更改站点后从 curl 使用 getURL 时出错
【发布时间】:2017-05-08 08:39:12
【问题描述】:

我一直在使用 curl(在 R 中)的 getURL 来读取 https://fantasy.premierleague.com/drf/bootstrap-static

示例代码: print(getURL("https://fantasy.premierleague.com/drf/bootstrap-static"))

直到几天前都没问题。但现在得到错误:

Error in function (type, msg, asError = TRUE)  : 
  error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version

已升级到最新的 R (3.4.0) 和 curl 包:RCurl_1.95-4.8

我有一个解决方法(使用来自 httr 的 GET),但谁能帮我让它与 getURL 一起使用?

我相信服务器的变化是他们现在只支持 TLS 1.2。我尝试了以下方法来修复,但现在出现新错误。可能与需要更新的 OpenSSL 有关吗?

CURL_SSLVERSION_TLSv1_2 <- 6L
opt <- RCurl::curlOptions(verbose = TRUE, sslversion = 
CURL_SSLVERSION_TLSv1_2)
print( RCurl::getURL("https://fantasy.premierleague.com/drf/bootstrap-static", .opts = opt))

新的错误是:

Unsupported SSL protocol version

【问题讨论】:

  • 我有理由确定需要使用 OpenSSL 1.0.1 重新构建 Rcurl 以支持 TLS 1.2。我已将其报告为错误。同时 httr 函数似乎还可以。

标签: r rcurl


【解决方案1】:

我认为如果您删除代码的 getURL 部分,它应该可以正常工作

url = "https://fantasy.premierleague.com/drf/bootstrap-static"
json = fromJSON((url))

【讨论】:

  • 同意。我猜fromJSON不是基于curl的。
  • 一个细微的区别是 fromJSON 不会捕获 http 错误。我坚持尝试 httr GET 后跟 fromJSON
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 2018-03-19
相关资源
最近更新 更多