#' Retrieve or test content type of a HAR request object #' #' @param har_resp_obj HAR response object #' @export get_content_type <- function(har_resp_obj) { ctype <- har_resp_obj$response$content$mimeType if (ctype == "") return(NA_character_) if (any(grepl(";", ctype))) ctype <- gsub(";.*$", "", ctype) ctype } #' @md #' @rdname get_content_type #' @param type content type to compare to (default: "`application/json`") #' @export is_content_type <- function(har_resp_obj, type="application/json") { get_content_type(har_resp_obj) == type } #' @rdname get_content_type #' @export is_json <- function(har_resp_obj) { is_content_type(har_resp_obj) } #' @rdname get_content_type #' @export is_xml <- function(har_resp_obj) { is_content_type(har_resp_obj, type="application/xml") } #' @rdname get_content_type #' @export is_css <- function(har_resp_obj) { is_content_type(har_resp_obj, type="text/css") } #' @rdname get_content_type #' @export is_plain <- function(har_resp_obj) { is_content_type(har_resp_obj, type="text/plain") } #' @rdname get_content_type #' @export is_binary <- function(har_resp_obj) { is_content_type(har_resp_obj, type="application/octet-stream") } #' @rdname get_content_type #' @export is_javascript <- function(har_resp_obj) { is_content_type(har_resp_obj, type="text/javascript") | is_content_type(har_resp_obj, type="text/x-javascript") } #' @rdname get_content_type #' @export is_html <- function(har_resp_obj) { is_content_type(har_resp_obj, type="text/html") } #' @rdname get_content_type #' @export is_jpeg <- function(har_resp_obj) { is_content_type(har_resp_obj, type="image/jpeg") } #' @rdname get_content_type #' @export is_png <- function(har_resp_obj) { is_content_type(har_resp_obj, type="image/png") } #' @rdname get_content_type #' @export is_svg <- function(har_resp_obj) { is_content_type(har_resp_obj, type="image/svg+xml") } #' @rdname get_content_type #' @export is_gif <- function(har_resp_obj) { is_content_type(har_resp_obj, type="image/gif") } #' @rdname get_content_type #' @export is_xhr <- function(x) { if (is.null(x$request$headers)) return(NA) if (length(x$request$headers)==0) return(NA) y <- map(x$request$headers, "value") names(y) <- tolower(map_chr(x$request$headers, "name")) if ("x-requested-with" %in% names(y)) { return(tolower("xmlhttprequest") == tolower(y[["x-requested-with"]])) } else { return(FALSE) } } #' Retrieve size of content | body | headers #' #' @param har_resp_obj HAR response object #' @export get_content_size <- function(har_resp_obj) { csize <- har_resp_obj$response$content$size if (is.null(csize)) return(NA_real_) return(as.numeric(csize)) } #' @rdname get_content_size #' @export get_body_size <- function(har_resp_obj) { bsize <- har_resp_obj$response$bodySize if (is.null(bsize)) return(NA_real_) return(as.numeric(bsize)) } #' @rdname get_content_size #' @export get_headers_size <- function(har_resp_obj) { hsize <- har_resp_obj$response$headersSize if (is.null(hsize)) return(NA_real_) return(as.numeric(hsize)) }