Curl GET запрос с параметром json


Я пытаюсь отправить запрос " GET " на удаленный REST API из командной строки через cURL следующим образом:

curl -X GET -H "Content-type: application/json" -H "Accept: application/json"  "http://server:5050/a/c/getName/{"param0":"pradeep"}"

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

в основном я хочу установить запрос " GET " на удаленную службу REST, которая дает мне данные json в качестве ответа через curl. Может ли кто-нибудь указать мне, какую ошибку я делаю? Я попытался различные посты, но все они говорят о почтовых запросах, а не о GET.

5 78

5 ответов:

Это должно работать :

  curl -i -H "Accept: application/json" "server:5050/a/c/getName{"param0":"pradeep"}" 

опция пользователя-i вместо x.

если вы хотите отправить ваши данные внутри тела, то вы должны сделать POST или PUT вместо GET.

для меня это выглядит так, как будто вы пытаетесь отправить запрос с параметрами uri, который не связан с GET, вы также можете поставить эти параметры на POST,PUT и так далее.

запрос является необязательной частью, разделенной вопросительным знаком ("?"), который содержит дополнительную идентификационную информацию, которая не является иерархическая по своей природе. Синтаксис строки запроса не определен в общем виде, но обычно он организован как последовательность пар=, причем пары разделены точкой с запятой или амперсандом.

например:

curl http://server:5050/a/c/getName?param0=foo&param1=bar

GET принимает пары значений имен.

попробуйте что-то вроде:

curl http://server:5050/a/c/getName/?param1=pradeep

или

curl http://server:5050/a/c/getName?param1=pradeep

кстати обычный отдых должен выглядеть примерно так

curl http://server:5050/a/c/getName/pradeep если он принимает JSON в GET URL, это не стандартный способ.

для служб, защищенных именем пользователя и паролем, используйте следующие

curl -u admin:password -X GET http://172.16.2.125:9200 -d '{"sort":[{"lastUpdateTime":{"order":"desc"}}]}'

попробовать

curl -G ...

вместо

curl -X GET ...

обычно вам не нужна эта опция. Все виды запросов GET, HEAD, POST и PUT скорее вызываются с помощью выделенных параметров командной строки.

этот параметр изменяет только фактическое слово, используемое в HTTP-запросе, он не изменяет поведение curl. Так, например, если вы хотите сделать правильный запрос головы, используя-X HEAD не будет достаточно. Вам нужно использовать опцию-I, --head.