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
相关产品推荐
相关产品推荐

