gpt4 book ai didi

r - httr POST 请求正文中的数组

转载 作者:行者123 更新时间:2023-12-04 00:35:00 26 4
gpt4 key购买 nike

这个 curl 调用用于在 Digital Ocean 上创建一个新的 droplet

curl -X POST "https://api.digitalocean.com/v2/droplets" \
-d '{"name":"test3","region":"nyc2","size":"512mb","image":5562742,"ssh_keys":[89103]}' \
-H "Authorization: Bearer $TOKEN"
-H "Content-Type: application/json"

但是,只有在给定参数 ssh_keys 时,我才能让 httr::POST() 请求工作。在上述方法中,ssh_keys 参数(如果给定)必须是一个数组。

我假设参数列表可以传递给正文,例如,ssh_keys 参数在列表中

args <- list(name="test3", region="nyc2", size="512mb", image="5562742", ssh_keys=list(891111))
POST(url, config=auth, body=args)

我假设这就是内部发生的事情:

jsonlite::toJSON(args)

[1] "{ \"name\" : [ \"test3\" ], \"region\" : [ \"nyc2\" ], \"size\" : [ \"512mb\" ], \"image\" : [ \"5562742\" ], \"ssh_keys\" : [ [ 89103 ] ] }"

我认为这会奏效,但也许事实并非如此?摆弄 POST 中的 encode 参数似乎没有帮助。

curl 调用从终端运行,但使用 httr::POST() 我不断收到错误消息

You specified invalid ssh key ids for Droplet creation.

最佳答案

在这种特定情况下,

x <- jsonlite::toJSON(args, auto_unbox=TRUE)
cat(x)

似乎返回了正确的格式(假设问题不在于标题)所以他们

POST(url, config=auth, body=x)

应该发送正确的请求。

关于r - httr POST 请求正文中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com