我不确定这是问这个问题的最佳地点,但是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"
答案 0 :(得分:1)
该错误与JSON相关。
首先,使用https://jsonformatter.org/json-pretty-print之类的工具来确保您的JSON有效。
就像mc-nd所说的那样,在Windows上,CMD提示符对引号的处理有些奇怪,因此像这样转义它们应该可以解决问题:
-d "{\"type\":\"shutdown\"}"
还可以在PowerShell中运行该命令,其中单引号的工作方式通常与Unix shell中的方式相同。