Ошибка синтаксиса CURL

Я пытаюсь использовать CURL, чтобы поместить данные JSON в свой запрос, используя этот синтаксис:

curl -X POST -H "Content-Type: application/json" -d '{"firstName":"First", "lastName":"last", "email":"[email protected]", "username":"user1", "password":"pass1"}' 127.0.0.1:3001/users

теперь CMD показывает эту ошибку: Ошибка синтаксиса CURL

Пожалуйста помоги!

Windows не обрабатывает ' так, как оболочка Unix.

user2357112 supports Monica 10.06.2018 10:50

Итак, что нужно сделать, чтобы решить эту проблему? @ user2357112

MiKr13 10.06.2018 11:01
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
2
1 454
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Раньше у меня была аналогичная проблема, и я решил сохранить данные сообщения в файле .json и вызвать его в запросе.

curl -v -X POST https://someSite.com/randrand \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: (iPhone; iOS 7.1; Scale/2.00)' \
  --data @data.json

где файл нужно сохранить? вроде в каком каталоге? Должно ли это быть таким же, как сейчас?

MiKr13 10.06.2018 11:05

Я сохранил его в том же каталоге, в котором запускал терминал, в моем случае, на моем рабочем столе.

Ross Kinard 10.06.2018 11:09

Спасибо! На данный момент проблема решена, но что, если я не хочу этим пользоваться? @Ross Kinard

MiKr13 10.06.2018 11:11

Я долгое время пытался найти правильный синтаксис для раздела данных, но мне не удавалось найти элементы, которые я публиковал, используя терминал на Mac. Если найдете лучший ответ, дайте мне знать.

Ross Kinard 10.06.2018 11:13

Да, я обязательно дам тебе знать, если что-нибудь узнаю.

MiKr13 10.06.2018 11:19
Ответ принят как подходящий

Ну я использовал:

curl -X POST -H "Content-Type: application/json" -d "{\"firstName\": \"First\", \"lastName\": \"last\", \"email\": \"[email protected]\", \"username\": \"user1\", \"password\": \"pass1\"}" 127.0.0.1:3001/users

И это сработало! Привет Россу Кинарду за помощь с временным решением, так что теперь в этом вопросе указываются оба способа публикации с использованием CURL в cmd.

Я бы позволил партии выполнить экранирование, заменив все " на \"

set "json = {"firstName":"First", "lastName":"last", "email":"[email protected]", "username":"user1", "password":"pass1"}"
set "json=%json:"=\"%"
echo curl -X POST -H "Content-Type: application/json" -d "%json%" 127.0.0.1:3001/users

Перед использованием удалите эхо перед завитком.


  • При запуске пакета в PowerShell curl без расширения будет использовать псевдоним Invoke-Webrequest вместо curl.exe
  • В Windows 10 версии 1803 включен curl.exe (C: \ Windows \ system32 \ curl.exe V7.55.1.0)
  • Если вам нужна специальная версия curl, местоположение C:\Windows\system32\ предположительно находится раньше в пути к среде, поэтому включите путь к ваш curl.

Что ж, это прекрасное гениальное решение! Спасибо.

MiKr13 12.06.2018 08:29

Другие вопросы по теме