2010-11-30 5 views
22

कमांड लाइन से JSON कॉल करने का सबसे आसान तरीका क्या है? मेरे पास एक वेबसाइट है जो अतिरिक्त डेटा पुनर्प्राप्त करने के लिए एक JSON कॉल करता है।कमांड लाइन से JSON पेलोड के साथ HTTP-request/कॉल कैसे करें?

अनुरोध पेलोड के रूप में गूगल क्रोम में दिखाया गया है इस तरह दिखता है:

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

यह (अधिमानतः) linux कमांड लाइन से कॉल कर रहे हैं और पुन: प्राप्त करने JSON सामग्री, नहीं भेजे JSON डेटा पार्स करने के बारे में के बारे में है ।

+2

JSON एक डेटा प्रारूप है, कोई 'JSON कॉल' नहीं है। जो आप पूछ रहे हैं वह JSON पेलोड के साथ HTTP अनुरोध है। – Javier

+0

@ जेवियर: हाँ! मैं तदनुसार शीर्षक बदल दूंगा। – Roalt

उत्तर

31

उपयोग कर्ल, डेटा संभालने POST'ed,

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

तुम सिर्फ एक प्राप्त साथ डेटा पुन: प्राप्त कर रहे हैं की तरह कुछ है, और नहीं है है कुछ भी बार URL पैरामीटर भेजने के लिए, जरूरत है तुम सिर्फ चलाने था curl http://example.com/some/path

+0

धन्यवाद! यह वास्तव में अच्छी तरह से काम करता है और वास्तव में मुझे क्या चाहिए! – Roalt

+10

आपको '-H "सामग्री-प्रकार की आवश्यकता हो सकती है: एप्लिकेशन/जेसन" 'भी – alanjds

0

क्या आपने 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"} 
24

आप इस्तेमाल कर सकते हैं wget के साथ-साथ:

wget -O- --post-data='{"some data to post..."}' --header=Content-Type:application/json "http://www.example.com:9000/json" 
2
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"}' 
संबंधित मुद्दे