1 # Copyright (C) The Arvados Authors. All rights reserved.
3 # SPDX-License-Identifier: Apache-2.0
5 HttpParser <- R6::R6Class(
11 validContentTypes = NULL,
13 initialize = function()
15 self$validContentTypes <- c("text", "raw")
18 parseJSONResponse = function(serverResponse)
20 parsed_response <- httr::content(serverResponse,
22 type = "application/json")
25 parseResponse = function(serverResponse, outputType)
27 parsed_response <- httr::content(serverResponse, as = outputType)
30 getFileNamesFromResponse = function(response, uri)
32 text <- rawToChar(response$content)
33 doc <- XML::xmlParse(text, asText=TRUE)
34 base <- paste(paste("/", strsplit(uri, "/")[[1]][-1:-3], sep="", collapse=""), "/", sep="")
36 XML::xpathApply(doc, "//D:response/D:href", function(node) {
37 sub(base, "", URLdecode(XML::xmlValue(node)), fixed=TRUE)
40 result <- result[result != ""]
44 getFileSizesFromResponse = function(response, uri)
46 text <- rawToChar(response$content)
47 doc <- XML::xmlParse(text, asText=TRUE)
49 base <- paste(paste("/", strsplit(uri, "/")[[1]][-1:-3], sep="", collapse=""), "/", sep="")
50 result <- XML::xpathApply(doc, "//D:response/D:propstat/D:prop/D:getcontentlength", function(node) {