Запрос 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.