From jeroen.ooms at stat.ucla.edu  Thu Aug 27 17:46:16 2015
From: jeroen.ooms at stat.ucla.edu (Jeroen Ooms)
Date: Thu, 27 Aug 2015 17:46:16 +0200
Subject: [Rd] Issues with libcurl + HTTP status codes (eg. 403, 404)
In-Reply-To: <21983.10725.42382.149992@stat.math.ethz.ch>
References: <CAJXgQP3cFoOxcU3sbX7Q8nWh8AE0Voc6KyhQ+ZUU2aLPQxDxqQ@mail.gmail.com>
	<55DCCBE6.2050901@fredhutch.org>
	<CAJXgQP2Br8wBtC4tQcNfaWSf12ZgaJxJvnFtAXR_MnpzS0jGEQ@mail.gmail.com>
	<55DCD123.1010205@fredhutch.org>
	<CABFfbXuJSxA-t+vaFNKug550ONVgdtOcH79AJRbHwCO4biuZrA@mail.gmail.com>
	<55DE46AB.4080508@gmail.com>
	<21983.10725.42382.149992@stat.math.ethz.ch>
Message-ID: <CABFfbXsu1M85-Mta1cd170jXYRJ5Ua=PGbyRMeihR2QoBwvWhA@mail.gmail.com>

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"))



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