如何将向量或列表格式的请求头传递给httr2的req_headers()
httr2批量传入请求头解决方案
核心方法是使用!!!(大爆炸操作符)将提前存储的命名向量/列表动态展开为req_headers()的独立参数即可实现批量传入。
正确示例代码
library(httr2) library(magrittr) # 若使用%<>%赋值管道需先加载该包 # 提前存储的命名向量格式请求头 headerValues <- c(myHeader1 = "value1", myHeader2 = "value2") req <- request("http://example.com") # 用!!!展开参数传入 req %<>% req_headers(!!!headerValues)
如果请求头存储为列表格式,用法完全一致:
headerList <- list(myHeader1 = "value1", myHeader2 = "value2") req %<>% req_headers(!!!headerList)
效果验证
可通过以下语句查看请求头确认设置生效:
print(req$headers)
原理解释
req_headers()原生支持逐个传入命名参数,直接传入完整向量/列表时会被识别为单个无效参数。!!!是rlang包提供的动态参数注入操作符,会将命名对象的每个元素拆分为独立的命名参数传入函数,正好匹配req_headers()的参数规则。
内容的提问来源于stack exchange,提问作者admccurdy
相关产品推荐
相关产品推荐

