Я учусь feathersjs согласно ниже ссылкеCurl команда в Windows,
http://feathersjs.com/quick-start/
мне нужно запустить следующую команду и контролировать выход на http://localhost:3000/todo
curl 'http://localhost:3000/todos/' -H 'Content-Type: application/json' --data-binary '{ "text": "Do something" }'
Когда я попытался запустить ниже на cmd, он показывает, что «curl» не распознается в приглашении cmd.
Если я попытался запустить его с помощью git-bash.exe, bash.exe или sh.exe (в Git/bin или shell.w32-ix86), Cygwin.bat (в cygwin64), он будет работать нормально и показывая результат в браузере.
[{"text":"Do something","id":0}]
Но если пытались запустить его, в том числе и в мой путь "C: \ Program Files \ Git \ mingw64 \ BIN, который имеет curl.exe", я буду получать ниже ошибки, но «C: \ Program Files \ Git \ USR \ Bin»будет делать только штрафом ...
локон: (1) Протокол ""HTTP" не поддерживается или отключен в Libcurl
локон: (6) не удалось решить множество 'application'
curl: (6) Не удалось разрешить текст хоста '
curl: (6) Не удалось решить хост пользователя' Do something '
завиток: (3) [подстановка] непревзойденная близко скобка/скобка в колонке 1
мне удалось устранить ошибку с ниже командами
curl "http://localhost:3000/todos/" -H "Content-Type: 'application/json'" --data-binary "{ 'text': 'Do something' }"
Но результирующий выходной сигнал будет иметь объект Json «текст "пропавший без вести ...
[{"text":"Do something","id":0},{"id":1}]
Вопрос:
1) После изменения команды, объект Json не успешно проанализирован. Есть ли проблема синтаксиса?
2) Если проблема с синтаксисом отсутствует, означает ли это, что завиток нужно запускать в среде Unix в соответствии с первоначальной попыткой, что он не может быть запущен непосредственно в cmd, но будет нормально работать в bash, cygwin и т. Д2?
3) В чем разница между curl.exe в C: \ Program Files \ Git \ usr \ bin и C: \ Program Files \ Git \ mingw64 \ bin, у которой есть curl.exe?
Update:
Не OK выход Raw Cap http.content_type == "" приложения/JSON" Выход
OK Raw Cap http.content_type == "приложения/JSON"
Update2:
Удаление одинарные кавычки в приложении/JSON на 2-й команды ... показывает ошибку
C:\Users\testUser>"C:\Program Files\Git\mingw64\bin\curl.exe" "http://localhost:3000/todos/" -H "Content-Type: 'application/json'" --data-binary "{ 'text': 'Do something' }"
{"id":1}
C:\Users\testUser>"C:\Program Files\Git\mingw64\bin\curl.exe" "http://localhost:3000/todos/" -H "Content-Type: application/json" --data-binary "{ 'text': 'Do something' }"
SyntaxError: Unexpected token '<br> at Object.parse (native)<br> at parse (C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService\node_modules\body-parser\lib\types\json.js:88:17)<br> at C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService\node_modules\body-parser\lib\read.js:116:18<br> at invokeCallback (C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService\node_modules\body-parser\node_modules\raw-body\index.js:262:16)<br> at done (C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService\node_modules\body-parser\node_modules\raw-body\index.js:251:7)<br> at IncomingMessage.onEnd (C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService\node_modules\body-parser\node_modules\raw-body\index.js:308:7)<br> at emitNone (events.js:67:13)<br> at IncomingMessage.emit (events.js:166:7)<br> at endReadableNT (_stream_readable.js:905:12)<br> at doNTCallback2 (node.js:441:9)
Update 3:
Пробовал заменить Libcurl-4.dll, используемый curl.exe. Загрузили libcurl из «http://curl.haxx.se/download.html», MingW32 с «http://sourceforge.net/projects/mingw/files/MSYS/» и добавили «C: \ MinGW \ bin» в PATH. Затем grep -rl "libcurl.dll".| xargs sed -i's/libcurl.dll/libcurl-4.dll/g 'для создания libcurl-4.dll в соответствии с предложенным «http://curl.haxx.se/mail/lib-2010-11/0174.html». Затем выполните ./buildconfig, make, make install. Затем скопировал Libcurl-4.dll в C: \ Program Files \ Git \ mingw64 \ бен папку, но результат тот же ...
Update 4
Изменение происхождения curl.exe, но до сих пор используют та же команда, показывает ошибку в версии mingw64. Я подозреваю, что завиток mingw64 требует специального выхода, чтобы заставить его работать?
C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService>"C:\Program Files\Git\mingw64\bin\curl.exe" 'http://localhost:3000/todos/' -H 'Content-Type: application/json' --data-binary '{ "text": "Do something" }'
curl: (1) Protocol "'http" not supported or disabled in libcurl
curl: (6) Couldn't resolve host 'application'
curl: (6) Couldn't resolve host 'text'
curl: (6) Couldn't resolve host 'Do something'
curl: (3) [globbing] unmatched close brace/bracket in column 1
C:\Users\testUser\Documents\Framework\Javascript\featherstestNewService>"C:\Program Files\Git\usr\bin\curl.exe" 'http://localhost:3000/todos/' -H 'Content-Type: application/json' --data-binary '{ "text": "Do something" }'
{"text":"Do something","id":38}
Update 5
От руководства ... локон --manual
-d, --data <data>
(HTTP) Sends the specified data in a POST request to the HTTP
server, in the same way that a browser does when a user has
filled in an HTML form and presses the submit button. This will
cause curl to pass the data to the server using the content-type
application/x-www-form-urlencoded. Compare to -F, --form.
-d, --data is the same as --data-ascii. --data-raw is almost the
same but does not have a special interpretation of the @ charac-
ter. To post data purely binary, you should instead use the
--data-binary option. To URL-encode the value of a form field
you may use --data-urlencode.
If any of these options is used more than once on the same com-
mand line, the data pieces specified will be merged together
with a separating &-symbol. Thus, using '-d name=daniel -d
skill=lousy' would generate a post chunk that looks like
'name=daniel&skill=lousy'.
If you start the data with the letter @, the rest should be a
file name to read the data from, or - if you want curl to read
the data from stdin. Multiple files can also be specified. Post-
ing data from a file named 'foobar' would thus be done with
--data @foobar. When --data is told to read from a file like
that, carriage returns and newlines will be stripped out. If you
don't want the @ character to have a special interpretation use
--data-raw instead.
Так что я попытался ...
C:\Users\testUser>"C:\Program Files\Git\mingw64\bin\curl.exe" "http://localhost:3000/todos/" -H "'Content-Type:' 'application/json'" --data-binary text=doing --data complete=false
{"text":"doing","complete":"false","id":145}
C:\Users\testUser>"C:\Program Files\Git\mingw64\bin\curl.exe" "http://localhost:3000/todos/" -H "'Content-Type:' 'application/json'" --data-binary text=ding
{"text":"ding","id":146}
Но я не могу понять, как сделать более одного слова для объекта JSON, например, вместо «делать», мне нужно «что-то делать». Кажется, что MingW64 git curl принимает разные форматы ...
Я отредактировал свое оригинальное сообщение, убедился, что бежал из mingw и удалял одну цитату ... Я не могу понять ошибку. Это то, что вы мне предлагаете? – user3663854
», и если они найдут несколько путей там, то он будет выбирать только один, и я не знаю, какой из них!» - О, * Я * знаю, какой из них. Это не волшебство ;-) Подсказка: порядок записей в 'PATH' имеет значение. – Joey