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 ответов:
Это должно работать :
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¶m1=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.