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