[Rd] Issues with libcurl + HTTP status codes (eg. 403, 404)

Jeroen Ooms jeroen.ooms at stat.ucla.edu
Thu Aug 27 17:46:16 CEST 2015


On Thu, Aug 27, 2015 at 5:16 PM, Martin Maechler
<maechler at stat.math.ethz.ch> wrote:
> Probably I'm confused now...
> Both R-patched and R-devel give an error (after a *long* wait!)
> for
>        download.file("https://someserver.com/mydata.csv", "mydata.csv")
>
> So that problem is I think  solved now.

I'm sorry for the confusion, this was a hypothetical example.
Connection failures are different from http status errors. Below some
real examples of servers returning http errors. For each example the
"internal" method correctly raises an R error, whereas the "libcurl"
method does not.

# File not found (404)
download.file("http://httpbin.org/data.csv", "data.csv", method = "internal")
download.file("http://httpbin.org/data.csv", "data.csv", method = "libcurl")
readLines(url("http://httpbin.org/data.csv", method = "internal"))
readLines(url("http://httpbin.org/data.csv", method = "libcurl"))

# Unauthorized (401)
download.file("https://httpbin.org/basic-auth/user/passwd",
"data.csv", method = "internal")
download.file("https://httpbin.org/basic-auth/user/passwd",
"data.csv", method = "libcurl")
readLines(url("https://httpbin.org/basic-auth/user/passwd", method =
"internal"))
readLines(url("https://httpbin.org/basic-auth/user/passwd", method = "libcurl"))



More information about the R-devel mailing list