我正在使用httr的GET函数执行API请求。该API一次仅接受一个参数,而我需要大约100000个参数的信息。我编写了一个循环处理请求的脚本,并计划了一个包含cron任务的脚本,该脚本在星期一的早晨运行。 我随机收到此错误,并且无法重现它:
curl :: curl_fetch_memory(url,handle = handle)中的错误: 来自服务器的空回复
我的代码:
getFullOrders_APISF <- function(hashID, auth = getAuthAuto()) {
require(httr)
require(jsonlite)
require(base64enc)
require(hashids)
require(data.table)
require(magrittr)
require(dplyr)
token <- auth
url <- paste0("http://my_api/", hashID,"/full")
get <- GET(url,add_headers(Authorization = paste0('Bearer ', token)),
encode = "json", timeout(300))
httr::reset_config()
events <- fromJSON(httr::content(get, 'text', 'application/json', encoding = "UTF-8"))
return(events)
}
然后,我使用此函数返回带有许多API请求结果的表:
getActors <- function(export) {
require(dplyr)
hashID <- export%>%
select(hashID)
N <- nrow(hashID)
for (i in 1:N){
print(c(hashID$encoded_hashID[i],i))
order <- getFullOrders_APISF(hashID = hashID$encoded_hashID[i])
if (is.null(order$errors)){
return(order)
}
else{
print(paste0("API problem with order #",hashID$encoded_hashID[i]," ",
"//// API status ", order$errors$detail))
}
}
}
关于如何解决此问题的任何想法?谢谢