3 HttpRequest <- R6::R6Class(
9 validContentTypes = NULL,
12 initialize = function()
14 self$validContentTypes <- c("text", "raw")
15 self$validVerbs <- c("GET", "POST", "PUT", "DELETE", "PROPFIND", "MOVE")
18 exec = function(verb, url, headers = NULL, body = NULL, queryParams = NULL,
21 if(!(verb %in% self$validVerbs))
22 stop("Http verb is not valid.")
24 headers <- httr::add_headers(unlist(headers))
25 urlQuery <- self$createQuery(queryParams)
26 url <- paste0(url, urlQuery)
28 # times = 1 regular call + numberOfRetries
29 response <- httr::RETRY(verb, url = url, body = body,
30 config = headers, times = retryTimes + 1)
33 createQuery = function(queryParams)
35 queryParams <- Filter(Negate(is.null), queryParams)
37 query <- sapply(queryParams, function(param)
39 if(is.list(param) || length(param) > 1)
40 param <- RListToPythonList(param, ",")
42 URLencode(as.character(param), reserved = T, repeated = T)
48 query <- paste0(names(query), "=", query, collapse = "&")
50 return(paste0("/?", query))