DigitalOcean REST API 使用 cURL 从 CMD 调用 Returns 错误

DigitalOcean REST API Call From CMD Using cURL Returns Error

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

{"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"

错误与 JSON 相关。

首先,使用 https://jsonformatter.org/json-pretty-print.

等工具确保您的 JSON 有效

就像 mc-nd 所说的那样,在 Windows,CMD 提示用引号做了一些奇怪的事情,所以像这样转义它们应该可以解决问题: -d "{\"type\":\"shutdown\"}"

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