Как отправить двойную кавычку в параметре -d для curl.exe? - PullRequest
30 голосов
/ 23 декабря 2010

Как отправить символ двойной кавычки с помощью curl.exe в параметре -d.Я не хочу, чтобы URL кодировал двойную кавычку.Поскольку данные -d должны быть заключены в двойные кавычки, я не могу заставить их работать.

Или есть другой флаг для curl.exe, который указывает использовать содержимое файла для всей записи формыданные

Ответы [ 5 ]

34 голосов
/ 05 апреля 2013

My curl.exe работает с этой формой:

-d "{\"param\":\"value\"}"

т.е. двойные кавычки вокруг данных и двойные кавычки, замаскированные обратной косой чертой внутри

13 голосов
/ 23 декабря 2010

Вы, безусловно, можете избежать двойных кавычек. То, как вы это сделаете, зависит от вашей операционной системы и оболочки, которые вы не можете указать. В Windows вы бы использовали ^ в качестве escape-символа.

Вы также можете сделать это:

curl [...] -d @filename 

... который считывает данные из файла с именем filename.

Google и / или мужчина твой друг.

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

5 голосов
/ 14 октября 2013

Для экранирования двойных кавычек я обнаружил, что утроение двойных кавычек работает из оболочки:

curl -d {"""foo""":"""bar"""}

при удвоении двойных кавычек работает из пакетного файла:

curl -d {""foo"":""bar""}

Что довольно раздражает для тестирования в оболочке.

5 голосов
/ 23 декабря 2010

Вы можете заключить данные в одинарные кавычки и использовать двойные кавычки внутри.

0 голосов
/ 13 июля 2018

Существует нечто, называемое долларовая неровная строка .

def cmd = $/ curl -d '{"param":"value"}' -X POST https://example.com/service /$
sh cmd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...