2017-05-08 61 views
1

後,我一直在使用的getURL從捲曲(以R)從https://fantasy.premierleague.com/drf/bootstrap-static的R - 錯誤使用的getURL當從捲曲網站改變

例讀碼: print(getURL("https://fantasy.premierleague.com/drf/bootstrap-static"))

沒有問題,直到前幾天。但現在收到錯誤: 錯誤功能(類型,味精,asError = TRUE): 錯誤:1407742E:SSL例程:SSL23_GET_SERVER_HELLO:警惕的TLSv1協議版本

已經升級到最新的R(3.4.0)和捲曲包: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)) 

新的錯誤是: 不支持SSL協議版本

+0

我有理由相信,Rcurl必須用OpenSSL 1.0.1重新編譯以支持TLS 1.2。我已經將它報告爲一個錯誤。同時httr功能看起來不錯。 – mikecro

回答

0

我認爲,如果你刪除代碼的getURL部分應該工作正常

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

同意。我猜JSON不是基於curl。 – mikecro

+0

一個微妙的區別是,從JSON不會陷入一個http錯誤。我堅持嘗試httr GET,然後從JSON – mikecro