web-dev-qa-db-fra.com

Comment faire la demande / l'appel HTTP avec la charge utile JSON à partir de la ligne de commande?

Quelle est la façon la plus simple de faire un appel JSON à partir de la ligne de commande? J'ai un site Web qui effectue un appel JSON pour récupérer des données supplémentaires.

Request Payload comme indiqué dans Google Chrome ressemble à ceci:

{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }

Il s'agit de faire l'appel depuis (de préférence) la ligne de commande linux et de récupérer le contenu JSON, pas d'analyser les données JSON entrantes.

33
Roalt

Utilisez curl, en supposant que les données sont POST, quelque chose comme

curl -X POST http://example.com/some/path -d '{"version": "1.1", "method":"progr","id":2,"params":{"call":...} }'

Si vous récupérez simplement les données avec un GET et que vous n'avez pas besoin d'envoyer quoi que ce soit à des paramètres d'URL de barre, vous exécutez simplement curl http://example.com/some/path

40
nos

Vous pouvez également utiliser wget:

wget -O- --post-data='{"some data to post..."}' \
  --header='Content-Type:application/json' \
  'http://www.example.com:9000/json'
43
Pius Raeder
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"}'
5
Neels

Vous pouvez utiliser wget avec post-file aussi, ce que j'ai trouvé utile.

wget --post-file=[file] --header=Content-Type:application/json [URL]

Vous pouvez conserver le contenu dans le fichier et le contenu sera envoyé en tant que données post.

1

Avez-vous regardé curl ? Il est très bon pour faciliter les requêtes HTTP GET/POST via la ligne de commande.

par exemple. (pour une demande 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"}
0
Jason S