Powershell卷曲双引号

我试图在PowerShell中调用一个curl命令并传递一些JSON信息。

这是我的命令:

curl -X POST -u username:password -H "Content-Type: application/json" -d "{ "fields": { "project": { "key": "key" }, "summary": "summary", "description": "description - here", "type": { "name": "Task" }}}"

我遇到了globbing错误和“无与伦比的大括号”,主机无法解决,等等。

然后,我尝试在字符串中使用反引号字符前缀双引号,但它无法识别描述json字段中的-字符

谢谢

编辑1:

当我在常规的批处理文件中编写curl命令时,我使用双引号和单引号。 另外,在-d字符串中,我使用脱离了所有双引号,并且该命令正常工作。

在这种情况下,我的curl实际上指向curl.exe。 我指定了路径,只是没有在这里列出。 另外我尝试在-d附加单引号,并且我得到:

curl: option -: is unknown curl: try 'curl --help' or 'curl --manual' for more information

似乎无法识别JSON中的-字符


将数据传输到curl.exe,而不是试图转义它。

$data = @{
    fields = @{
        project = @{
            key = "key"
        }
        summary = "summary"
        description = "description - here"
        type = @{
            name = "Task"
        }
    }
}

$data | ConvertTo-Json -Compress | curl.exe -X POST -u username:password -H "Content-Type: application/json" -d "@-"

如果您使用@-作为数据参数,curl.exe会读取stdin。

PS:我强烈建议你使用正确的数据结构和ConvertTo-Json ,如图所示,而不是手动构建JSON字符串。

链接地址: http://www.djcxy.com/p/48615.html

上一篇: Powershell curl double quotes

下一篇: Node json request badly parsed