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 中的相同。
我不确定这是问这个问题的最佳地点,但 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 中的相同。