From 7e8444af67a80580d483b97397be82bc83a4ecbe Mon Sep 17 00:00:00 2001 From: Jeroen Ooms Date: Sat, 5 Sep 2015 21:50:24 +0200 Subject: [PATCH] Check http responses status before proceeding. --- NAMESPACE | 1 + R/cranlogs.R | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 807ee28..b39fee8 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -4,4 +4,5 @@ export(cran_downloads) export(cran_top_downloads) importFrom(httr,GET) importFrom(httr,content) +importFrom(httr,stop_for_status) importFrom(jsonlite,fromJSON) diff --git a/R/cranlogs.R b/R/cranlogs.R index 04a0069..921d16b 100644 --- a/R/cranlogs.R +++ b/R/cranlogs.R @@ -3,8 +3,7 @@ #' #' @docType package #' @name cranlogs -#' @importFrom httr GET -#' @importFrom httr content +#' @importFrom httr GET content stop_for_status #' @importFrom jsonlite fromJSON NULL @@ -79,8 +78,9 @@ cran_downloads <- function(packages = NULL, ppackages <- paste0("/", ppackages) } - r <- fromJSON(content(GET(paste0(daily_url, interval, ppackages)), as = "text"), - simplifyVector = FALSE) + req <- GET(paste0(daily_url, interval, ppackages)) + stop_for_status(req) + r <- fromJSON(content(req, as = "text"), simplifyVector = FALSE) if ("error" %in% names(r) && r$error == "Invalid query") { stop("Invalid query, probably invalid dates") @@ -162,8 +162,9 @@ cran_top_downloads <- function(when = c("last-day", "last-week", "last-month"), count = 10) { when <- match.arg(when) - r <- fromJSON(content(GET(paste0(top_url, when, '/', count)), as = "text"), - simplifyVector = FALSE) + req <- GET(paste0(top_url, when, '/', count)) + stop_for_status(req) + r <- fromJSON(content(req, as = "text"), simplifyVector = FALSE) df <- data.frame( stringsAsFactors = FALSE,