如何在curl.exe的-d参数中发送双引号?

slo*_*ife 32 windows curl

如何使用-d参数中的curl.exe发送双引号char.我不想对双引号进行URL编码.由于-d数据需要用双引号括起来,我似乎无法使其工作.

或者是否有curl.exe的另一个标志,告诉它使用整个表单发布数据的文件内容?

小智 38

curl.exe用这种形式的作品:

-d "{\"param\":\"value\"}"
Run Code Online (Sandbox Code Playgroud)

即数据的双引号,以及内部用反斜杠掩盖的双引号

  • 我尝试在Windows 8.1命令提示符和反斜杠转义工作正常! (8认同)
  • 这对我来说在 Windows 10 DOS 命令 shell 中工作正常。但是,我还必须删除所有单引号并替换为双引号。例如,这里是 Hello World SendGrid v3 API 调用:curl --request POST --url https://api.sendgrid.com/v3/mail/send --header "Authorization: Bearer YOUR_API_KEY" --header "Content-类型:application/json" --data "{\"个性化\": [{\"to\": [{\"email\": \"to_name@example.com\"}]}],\"来自\": {\"email\": \"from_name@example.com\"},\"subject\": \"Hello, World!\",\"content\": [{\"type\": \“文本/纯文本\”,\“值\”:\“嘿!\”}]}” (2认同)

mar*_*ona 14

你绝对可以逃避双引号.如何执行此操作取决于您未指定的操作系统和shell.在Windows上,您将使用^作为转义字符.

你也可以这样做:

curl [...] -d @filename 
Run Code Online (Sandbox Code Playgroud)

...从名为filename的文件中读取发布数据.

谷歌和/或男人是你的朋友.

http://curl.haxx.se/docs/manpage.html


Isa*_*sac 5

您可以使用单引号括住数据并在内部使用双引号.

  • 然后他最好祈祷数据中没有单引号发布? (6认同)

Gaz*_*Gaz 5

为了逃避双引号问题,我发现双引号在shell中运行三倍:

curl -d {"""foo""":"""bar"""}
Run Code Online (Sandbox Code Playgroud)

加倍双引号在批处理文件中起作用:

curl -d {""foo"":""bar""}
Run Code Online (Sandbox Code Playgroud)

首先在shell中进行测试非常烦人.