出现错误时如何发出新请求? 来自JSON

问题描述

我有一个代码,我在其中使用 jsonlite 包请求 API。

我的要求是:

aux <- fromJSON (www ... js)

问题是请求有时间限制,有时会返回错误

*Error in open.connection (con,"rb"): HTTP error 429.*

我需要它,当出现错误时,代码等待 X 秒并发出新请求,并重复此过程,直到我获得请求的数据。

我找到了 trytryCatch 函数以及 retry 包。但我无法让它按照我的需要工作。

解决方法

试试这个方法:

aux <- tryCatch(fromJSON (www ... js),error = function(e) {return(NA)})

while(all(is.na(aux))) {
  Sys.sleep(30) #Change as per requirement. 
  aux <- tryCatch(fromJSON(www ... js),error = function(e) {return(NA)})
}