2011-11-17 11 views
20

का उपयोग कर वेब सेवा का परीक्षण कैसे करें मैं वेब एप्लिकेशन के लिए एक वेब सेवा बना रहा हूं, और मैं इसे विकसित करने के लिए एक सरल टूल चाहता हूं क्योंकि मैं विकास कर रहा हूं। मैंने कुछ फ़ायरफ़ॉक्स प्लग-इन (पोस्टर, 'रीस्ट क्लाइंट') की कोशिश की है, और भले ही ये काम ठीक है, मैं उनके साथ फाइल अपलोड करने में असमर्थ हूं।कमांड लाइन कर्ल

इसके अलावा, मेरे पास एक कमांड लाइन उपकरण होगा जिसका उपयोग मैं इस वेब सेवा के लिए आसानी से एकीकरण परीक्षण का एक सेट लिखने के लिए कर सकता हूं और मैं इस वेब सेवा के उपभोक्ताओं को एक उदाहरण के रूप में भेज सकता हूं।

मुझे पता है कि curl इसके लिए काम कर सकता है लेकिन कुछ उदाहरण, विशेष रूप से प्रमाणीकरण (HTTP बेसिक का उपयोग करके) और फ़ाइल अपलोड के बारे में कुछ उदाहरण चाहिए।

उत्तर

15

मौजूदा जवाब यह अक्सर बाकी उत्पादन (आमतौर पर JSON और एक्सएमएल खरोज का अभाव है) फ़ॉर्मेट करने के लिए वांछित है के अलावा। इसे आज़माएं:

$ curl https://api.twitter.com/1/help/configuration.xml | xmllint --format - 
$ curl https://api.twitter.com/1/help/configuration.json | python -mjson.tool 

उबंटू 11.0.4/11.10 पर परीक्षण किया गया।

एक और मुद्दा वांछित सामग्री प्रकार है। ट्विटर .xml/.json एक्सटेंशन का उपयोग करता है, लेकिन अधिक मुहावरेदार बाकी Accept हेडर की आवश्यकता होगी:

$ curl -H "Accept: application/json" 
+0

अतिरिक्त के लिए धन्यवाद। –

+0

जब मैं आपके उदाहरण का उपयोग करने का प्रयास करता हूं तो मुझे यह त्रुटि मिलती है: 'xmllint' को आंतरिक या बाहरी कमांड, ऑपरेट करने योग्य प्रोग्राम या बैच फ़ाइल के रूप में पहचाना नहीं जाता है। शायद पिछले 5 वर्षों में कुछ बदल गया है? – influent

+0

@influent, इसका मतलब है कि xmllint स्थापित नहीं है –

19

मेरे अपने प्रश्न का उत्तर दें।

curl -X GET --basic --user username:password \ 
    https://www.example.com/mobile/resource 

curl -X DELETE --basic --user username:password \ 
    https://www.example.com/mobile/resource 

curl -X PUT --basic --user username:password -d 'param1_name=param1_value' \ 
    -d 'param2_name=param2_value' https://www.example.com/mobile/resource 

http://curl.haxx.se/docs/httpscripting.html पर एक फ़ाइल और अतिरिक्त पैरामीटर

curl -X POST -F '[email protected]/filepath/filename' \ 
    -F 'extra_param_name=extra_param_value' --basic --user username:password \ 
    https://www.example.com/mobile/resource 
2

प्रलेखन से पोस्ट:

HTTP प्रमाणीकरण

curl --user name:password http://www.example.com 

कर्ल के साथ एक HTTP सर्वर के लिए एक फ़ाइल रखो:

curl --upload-file uploadfile http://www.example.com/receive.cgi 

संदेश पोस्ट डेटा कर्ल के साथ:

curl --data "birthyear=1905&press=%20OK%20" http://www.example.com/when.cgi 
संबंधित मुद्दे