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

使用cURL从CMD调用DigitalOcean REST API返回错误,curl,cmd,command-prompt,digital-ocean,Curl,Cmd,Command Prompt,Digital Ocean,我不确定这是问这个问题的最好地方,但DigitalOcean社区的帮助不大,我找不到任何其他来源来帮助解决这个问题。当我尝试发出关闭VPS的cURL请求时,它返回以下错误: {"id":"bad_request","message":"Your request body was malformed."} 尽管我从他们的API文档中逐字复制了cURL请求。当我在Linux终端上运行它时,它工作得很好,这让我相信这是CMD特有的cURL问题 这是从API文档中逐字复制的代码: curl-xpost

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

{"id":"bad_request","message":"Your request body was malformed."}
尽管我从他们的API文档中逐字复制了cURL请求。当我在Linux终端上运行它时,它工作得很好,这让我相信这是CMD特有的cURL问题

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


curl-xpost-H“内容类型:application/json”-H“授权:此处”-d'{“类型”:“shutdown”}”https://api.digitalocean.com/v2/droplets/VPS_IDHere/actions“

错误与JSON相关

首先,确保您的JSON使用类似的工具是有效的

正如mc nd所说,在Windows上,CMD提示符对引号做了一些奇怪的操作,因此,像这样对引号进行转义应该可以解决问题:
-d“{\”类型\“:\”关机\“}”


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

您可以共享您正在使用的确切命令(删除的私人信息)吗?我很确定windows的cmd.exe处理引号的方式与linux shell不同,但是我真的不知道如何修复它。知道我在哪里可以找到吗?我会尝试使用
-d“{'type':'shutdown'}”
,或者,如果API拒绝单引号,通常的方法是
-d“{\'type\\:\'shutdown'}”
转义参数内部双引号是的,我找到了。逃避是与\。