You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言httr包如何在POST请求查询参数中传递数组

httr 多值查询参数传递方法

要生成?type=3&type=5格式的同键多值查询串,直接利用httr对query参数的原生支持即可:给query传命名列表,同一个参数名对应的多个值存入向量,httr会自动将其展开为重复键的查询参数对,不需要手动拼接URL。

原代码存在两个问题需要修改:

  • 不要用data.frame构造query参数,改用命名列表,type字段传入目标值组成的向量c(3,5)
  • 修正语法错误:原代码add_headers()的右括号位置错误,encode是POST函数的顶层参数,不能放在add_headers()的参数列表里

修正后的代码如下:

library(httr)

POST(
  url = "https://www.example.com/xyz",
  query = list(
    something = "somethingElse",
    type = c(3, 5)
  ),
  add_headers(.headers = c("token" = token)),
  encode = "json"
)

校验方式:可以临时把POST替换为GET发起请求,打印返回的请求对象就能看到最终生成的URL已经是https://www.example.com/xyz?something=somethingElse&type=3&type=5的格式,完全匹配需求。

极少数接口要求数组传参带索引(比如type[0]=3&type[1]=5),这种情况手动给参数名加索引即可,你现在需要的重复key格式用上面的写法就能直接实现。

内容的提问来源于stack exchange,提问作者Swyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 05:12:16