【发布时间】:2014-10-25 20:55:17
【问题描述】:
这个 curl 调用可以在 Digital Ocean 上创建一个新的水滴
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"
但是,我无法让httr::POST() 请求仅在给出参数ssh_keys 时才能工作。在上述方法中,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() 我不断收到错误消息
您为 Droplet 创建指定了无效的 ssh 密钥 ID。
【问题讨论】: