使用cURL从CMD进行DigitalOcean REST API调用返回错误

时间:2019-01-30 23:41:40

标签: curl cmd command-prompt digital-ocean

我不确定这是问这个问题的最佳地点,但是DigitalOcean社区的帮助不足,并且我找不到其他任何来源来帮助解决此问题。当我尝试发出cURL请求关闭VPS时,它返回以下错误:

{"id":"bad_request","message":"Your request body was malformed."}

尽管我从他们的API文档中逐字复制了cURL请求。当我在Linux终端上运行它时,它工作得很好,使我相信这是CMD特有的cURL的问题。

这是从其API文档逐字复制的代码:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer APITokenHere" -d '{"type":"shutdown"}' "https://api.digitalocean.com/v2/droplets/VPS_IDHere/actions"

1 个答案:

答案 0 :(得分:1)

该错误与JSON相关。

首先,使用https://jsonformatter.org/json-pretty-print之类的工具来确保您的JSON有效。

就像mc-nd所说的那样,在Windows上,CMD提示符对引号的处理有些奇怪,因此像这样转义它们应该可以解决问题: -d "{\"type\":\"shutdown\"}"

还可以在PowerShell中运行该命令,其中单引号的工作方式通常与Unix shell中的方式相同。