r-使用httr包,设置一个标头,其中标头名称是一个变量

  • 本文关键字:一个 变量 使用 httr 设置 r httr
  • 更新时间 :
  • 英文 :


当我在变量中有标头的名称时,我想使用R httr包在请求中设置标头并设置标头。

我想做这样的事情:

tokenName = 'X-Auth-Token'
get_credentials_test <- function (token) {
  url <- paste(baseUrl,"/api/usercredentials", sep = '')
  r <- GET(url, add_headers(tokenName = token))
  r
}

然而,上面的代码似乎设置了一个名为tokenName的头。

如果我做以下事情,它确实有效:

get_credentials_test <- function (token) {
   url <- paste(baseUrl,"/api/usercredentials", sep = '')
   r <- GET(url, add_headers('X-Auth-Token' = token))
   r
}

但是,如果头的名称发生了变化,并且添加头的要求在代码中随意分布,我希望有一些灵活性。我不确定是否可以添加包含变量的标头,但这正是我想要做的。

您可以将头创建为命名向量,然后将其作为.headers参数传递:

h <- c(token)
names(h) <- tokenName
r <- GET(url, add_headers(.headers = h))

虽然这是因为add_headers采用.headers参数(请参阅此处),但调用具有任意参数名称的函数的更通用的替代方法是do.call:

h <- list(token)
names(h) <- tokenName
r <- GET(url, do.call(add_headers, h))

使用structure():很容易

get_creds <- function(base.url, path, header.name, token) {
    url <- paste0(base.url, path)
    header <- structure(token, names = header.name)
    r <- httr::GET(url, httr::add_headers(header))
    r
}

相关内容

  • 没有找到相关文章

最新更新