Array in body für httr POST request

Dieser Curl-Aufruf erstellt ein neues Tröpfchen auf 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"

Allerdings habe ich Probleme, ein @ zu bekommhttr::POST() Anfrage nur zu arbeiten, wenn der Parameterssh_keys ist gegeben. Bei der obigen Methode wird dasssh_keys Parameter, falls angegeben, muss ein Array sein.

Ich nahm an, dass die Liste der Parameter an den Körper übergeben werden könnte, z. B. wo dasssh_keys -Parameter befindet sich in einer Liste

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

Ich nehme an, das ist, was auf der Innenseite passiert:

jsonlite::toJSON(args)

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

Welche ich mir vorstellen würde funktionieren, aber vielleicht ist das nicht was passiert? Mit dem @ fummeencode Parameter inPOST scheint nicht zu helfen.

Der Curl-Aufruf funktioniert vom Terminal aus, aber mithttr::POST() Ich erhalte immer wieder die Fehlermeldung

Sie haben ungültige SSH-Schlüssel-IDs für die Droplet-Erstellung angegeben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage