जवाबों:
खेतों के साथ:
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
व्यक्तिगत रूप से निर्दिष्ट फ़ील्ड के साथ:
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
मल्टीपार्ट:
curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi
खेतों और एक फ़ाइल नाम के साथ मल्टीपार्ट करें:
curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
डेटा के बिना:
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
अधिक जानकारी के लिए CURL मैनुअल देखें । एक वेब ब्राउज़र की नकल पर cURL ट्यूटोरियल उपयोगी है।
Libcurl के साथ, curl_formadd()
सामान्य तरीके से सबमिट करने से पहले अपने फ़ॉर्म को बनाने के लिए फ़ंक्शन का उपयोग करें । देखें libcurl प्रलेखन अधिक जानकारी के लिए।
बड़ी फ़ाइलों के लिए, अपलोड प्रगति दिखाने के लिए पैरामीटर जोड़ने पर विचार करें:
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
-o output
की आवश्यकता है, अन्यथा कोई प्रगति बार दिखाई देगा।
--data-urlencode
(कोई पानी का छींटा), हाल के संस्करणों में कम से कम
With Fields
कब, कब Multipart
और किसके साथ करूंगा Without Data
?
--data
आप उपयोग कर सकते हैं -d
।
XML के लिए एक प्रासंगिक HTTP पोस्ट के लिए:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
या JSON के लिए, इसका उपयोग करें:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"
यह नामित फ़ाइल की सामग्री को पढ़ेगा filename.txt
और इसे पोस्ट अनुरोध के रूप में भेजेगा।
curl -X POST
एक HTTP POST अनुरोध का अर्थ है, -d
पैरामीटर (लंबा संस्करण :) --data
कर्ल बताता है कि निम्नानुसार क्या POST पैरामीटर होंगे, और @filename
फ़ाइल की सामग्री filename
को पैरामीटर के रूप में नामित करता है। यह दृष्टिकोण RESTful HTTP APIs के साथ सबसे अच्छा काम करता है जैसा कि Twitter, Facebook, रूबी सहित विभिन्न अन्य वेब सेवाओं के साथ-साथ CouchDB जैसे डेटाबेस के HTTP APIs पर भी है। REST का प्रतिनिधित्व प्रतिनिधि राज्य हस्तांतरण
-X POST
क्योंकि यह निहित है -d
।
स्टड से डेटा -d @-
उदाहरण:
echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
आउटपुट:
<p>Hello <strong>world</strong>!</p>
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
कर्ल उदाहरण मैनुअल में पाया गया उदाहरण है ।
एम्परसेंड के लिए% 26 का उपयोग करें, हालांकि यदि ऊपर काम नहीं करता है:
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
यदि आप किसी साइट पर लॉगइन करना चाहते हैं, तो निम्न कार्य करें:
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
पहला अनुरोध "हेडर" फ़ाइल में सत्र कुकी (जो सफल लॉगिन पर प्रदान किया गया है) को बचाता है। अब से आप उस कुकी का उपयोग उस वेबसाइट के किसी भी हिस्से को प्रमाणित करने के लिए कर सकते हैं, जिसे आप आमतौर पर ब्राउज़र से लॉग इन करने के बाद एक्सेस करते हैं।
curl -v --data-ascii var=value http://example.com
और भी कई विकल्प हैं, curl --help
अधिक जानकारी के लिए जाँच करें।
यदि आप आलसी हैं, तो आप सभी काम करने के लिए google-chrome प्राप्त कर सकते हैं।
Chrome cURL सिंटैक्स में सभी अनुरोध डेटा की प्रतिलिपि बनाएगा।
Chrome उपयोग करता है --data 'param1=hello¶m2=world'
जिसे आप एकल -d
या -F
प्रति पैरामीटर का उपयोग करके अधिक पठनीय बना सकते हैं, जिसके आधार पर आप किस प्रकार का POST अनुरोध भेजना चाहते हैं, जो application/x-www-form-urlencoded
या तो हो सकता है multipart/form-data
।
यह POST-ed के रूप में होगा application/x-www-form-urlencoded
( उन रूपों के बहुमत के लिए उपयोग किया जाता है जिनमें फ़ाइल अपलोड नहीं हैं ):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
एक multipart/form-data
POST उपयोग के लिए -F
( आमतौर पर उन रूपों के साथ उपयोग किया जाता है जिनमें फ़ाइल अपलोड होते हैं, या जहां फ़ील्ड का क्रम महत्वपूर्ण होता है, या जहां एक ही नाम वाले कई फ़ील्ड आवश्यक होते हैं ):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
User-Agent
हैडर सामान्य रूप से की जरूरत नहीं है, लेकिन मैं सिर्फ मामले में में यह फेंक दिया गया है। आप ~/.curlrc
फ़ाइल को बनाकर प्रत्येक अनुरोध पर उपयोगकर्ता एजेंट को सेट करने से बच सकते हैं जिसमें उदाUser-Agent: "Mozilla/2.2"
curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data