Как выполнить HTTP-запрос/вызов с помощью полезной нагрузки JSON из командной строки?
Какой самый простой способ сделать вызов JSON из командной строки? У меня есть веб-сайт, который выполняет вызов JSON для получения дополнительных данных.
Запрос полезной нагрузки, как показано в Google Chrome, выглядит следующим образом:
{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }
Это о вызове (предпочтительно) командной строки linux и извлечении содержимого JSON, а не о разборе входящих данных JSON.
Ответы
Ответ 1
Используйте curl, предполагая, что данные POST'ed, что-то вроде
curl -X POST http://example.com/some/path -d '{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }'
Если вы просто извлекаете данные с помощью GET и не должны посылать какие-либо параметры URL-адреса,
вы просто запустите curl http://example.com/some/path
Ответ 2
Вы также можете использовать wget:
wget -O- --post-data='{"some data to post..."}' \
--header=Content-Type:application/json \
"http://www.example.com:9000/json"
Ответ 3
curl --request POST \
--url http://localhost:8099/someservice/services/boo \
--header 'authorization: Basic dkfhsdlepwmdseA==' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data '{"value": "24.127.1212.123"}'
Ответ 4
Вы посмотрели curl? Это очень удобно для облегчения запросов HTTP GET/POST через командную строку.
например. (для запроса GET):
C:\WINDOWS>curl "http://search.twitter.com/search.json?q=twitterapi&result_type=
popular"
{"results":[{"from_user_id_str":"32316068","profile_image_url":"http://a2.twimg.
com/profile_images/351010682/twitblock_profile_normal.png","created_at":"Thu, 25
Nov 2010 14:37:46 +0000","from_user":"twitblockapp","id_str":"7805146834669569"
,"metadata":{"result_type":"popular","recent_retweets":10},"to_user_id":null,"te
xt":"blocking and reporting functions are currently failing. @TwitterAPI have be
en notified. http://j.mp/id5w3m","id":7805146834669569,"from_user_id":32316068,"
geo":null,"iso_language_code":"en","to_user_id_str":null,"source":"<a href=&q
uot;http://twitter.com" rel="nofollow">Tweetie for Mac</a&g
t;"}],"max_id":9607558079713280,"since_id":0,"refresh_url":"?since_id=9607558079
713280&q=twitterapi","results_per_page":15,"page":1,"completed_in":0.012698,"sin
ce_id_str":"0","max_id_str":"9607558079713280","query":"twitterapi"}
Ответ 5
Вы можете использовать wget
с post-file
, который я нашел полезным.
wget --post-file=[file] --header=Content-Type:application/json [URL]
Вы можете сохранить содержимое в файле, и контент будет отправлен как данные для post
.