R中请求URL失败/超时

时间:2014-12-30 02:10:56

标签: r rest url csv rcurl

我试图从网址获取csv文件,但似乎在一分钟后超时。 csv文件是在请求时创建的,因此需要一分多钟。我试图增加超时但它没有工作,一分钟后它仍然失败。

我使用urlread.csv如下:

# Start the timer
ptm <- proc.time()
urlCSV <- getURL("http://someurl.com/getcsv", timeout = 200)
txtCSV <- textConnection(urlCSV)
csvFile <- read.csv(txtCSV)
close(txtCSV)
# Stop the timer
proc.time() - ptm

结果日志:

Error in open.connection(file, "rt") : cannot open the connection
In addition: Warning message:
In open.connection(file, "rt") :
cannot open: HTTP status was '500 Internal Server Error'

user  system elapsed 
0.225   0.353  60.445

当它达到一分钟时它会一直失败,可能是什么问题?或者我如何增加超时?

我在浏览器中尝试了网址并且工作正常,但加载csv需要一分多钟

2 个答案:

答案 0 :(得分:4)

libcurl的CONNECTTIMEOUT设置为http://curl.haxx.se/libcurl/c/CURLOPT_CONNECTTIMEOUT.html。 您可以在RCurl

中进行设置
library(RCurl)
> getCurlOptionsConstants()[["connecttimeout"]]
[1] 78
myOpts <- curlOptions(connecttimeout = 200)
urlCSV <- getURL("http://someurl.com/getcsv", .opts = myOpts)

答案 1 :(得分:1)

您从服务器收到500错误,这表示超时发生在那里,因此无法控制(除非您可以要求更少的数据)