Powershell: passing json string to curl

I'm trying to pass a JSON string from within a powershell script to the build.phonegap.com api, using curl.
According to phonegap's forum, when running on a Windows machine, the JSON data has to be formatted as:

curl.exe -ku user@email:mypass -X PUT -d "data={"password":"keypass"}" https://build.phonegap.com/api/v1/key


Indeed, this does run fine when invoked from the command line.
However, when I try to invoke this from within a powershell script, the double quotes seem to be stripped.

So far, I have tried:

  • Putting the JSON in single quoted string:
  •     curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key
  • Putting the JSON in single quoted string, without the DOS escape backslashes:
  •     curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key
  • Putting the JSON in single quoted string, escaping the double quotes and backslashes (DOS style with a backslash):
  •     curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key
  • Putting the JSON in a double quoted string, escaping the double quotes with the powershell back tick character `:
  •     curl.exe -ku user@email:mypass -X PUT -d "`"data={`"password`":`"build*2014``"}`""  https://build.phonegap.com/api/v1/key



    Any idea how to achieve this?

    Thanks for your time, Koen


    Try using the --% operator to put PowerShell into simple (dumb) argument parsing mode:

    curl.exe --% -ku user@email:mypass -X PUT -d "data={"password":"keypass"}" https://build.phonegap.com/api/v1/key
    

    This is quite often useful for invoking exes with argument syntax that runs afoul of PowerShell's argument syntax. This does require PowerShell V3 or higher.


    设置内容类型:

    curl -H "Content-Type: application/json" -d '{"password":"keypass"}' https://build.phonegap.com/api/v1/key
    
    链接地址: http://www.djcxy.com/p/48612.html

    上一篇: 节点json请求严重分析

    下一篇: Powershell:传递json字符串来卷曲