Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

कर्ल के साथ पोस्ट अनुरोध करना

कर्ल एक पैकेज है जिसमें दूरस्थ सर्वरों के बीच डेटा स्थानांतरित करने के लिए विभिन्न उपकरण होते हैं। यह एफ़टीपी, विंडोज शेयर, मेल सर्वर और निश्चित रूप से HTTP का उपयोग करने वाले वेब सर्वर का समर्थन करता है।

Linux शेल से फ़ाइल डाउनलोड करना आमतौर पर cURL . का उपयोग करके पूरा किया जाता है ऐसा आदेश:

curl http://example.org/file.zip --output file.zip

यह GET पद्धति का उपयोग करके फ़ाइल के लिए अनुरोध करता है और बस इसे डाउनलोड करता है।

यह आलेख विस्तार से बताएगा कि फॉर्म डेटा सहित POST अनुरोध करने के लिए कर्ल का उपयोग कैसे करें। यह उपयोगी हो सकता है यदि सर्वर को फ़ाइल डाउनलोड करने के लिए क्रेडेंशियल की आवश्यकता होती है, या यदि आप डेटाबेस में भंडारण के लिए वेब फॉर्म में डेटा सबमिट करने के लिए एक स्वचालित स्क्रिप्ट बना रहे हैं।

यह REST API के साथ उपयोग के लिए फ़ाइल से XML या JSON डेटा सबमिट करने पर भी स्पर्श करेगा।

CURL का उपयोग करके URL एन्कोडेड फ़ील्ड पोस्ट करना

हमारे उदाहरणों के लिए, हम निम्नलिखित प्रपत्र डेटा सबमिट करेंगे:

<थ>मान
फ़ील्ड का नाम
फ़ील्ड1 मान1
फ़ील्ड2 मान2

डेटा यूआरएल पर सबमिट किया जाएगा https://example.org/submit.php . पते example.org . पर वास्तव में मौजूद नहीं है, यह सिर्फ एक वेब डोमेन है जिसे हम उदाहरण के लिए सुरक्षित रूप से उपयोग कर सकते हैं। सबमिट करें.php फ़ॉर्म सबमिट स्क्रिप्ट के लिए एक उदाहरण नाम भी है और किसी विशिष्ट चीज़ का संदर्भ नहीं देता है।

फ़ॉर्म डेटा को POST अनुरोध में एक स्ट्रिंग के रूप में भेजा जा सकता है, जिसमें प्रत्येक फ़ॉर्म फ़ील्ड और उसका मान name=value द्वारा परिभाषित किया गया है , और उन्हें & . से अलग करना –डेटा . का उपयोग करना विकल्प:

curl --data "field1=value1&field2=value2" https://example.org/submit.php

हालांकि, यह आदर्श नहीं है, क्योंकि इसके लिए यूआरएल एन्कोडेड . की आवश्यकता होती है डेटा - यानी, डेटा जिसमें रिक्त स्थान और स्लैश होते हैं, उन्हें HTTP पर भेजने के लिए प्रारूपित करने के लिए विशेष कोड से बदल दिया जाता है। आप इसे मैन्युअल रूप से कर सकते हैं, लेकिन cURL यह आपके लिए –data-urlencode . का उपयोग करके कर सकता है :

curl --data-urlencode "field1=value1&field2=value2" https://example.org/submit.php

फ़ील्ड नाम यूआरएल एन्कोडेड नहीं हैं - अगर आप उन्हें एन्कोड करना चाहते हैं तो उन्हें = से पहले लगाएं :

curl --data-urlencode "=user name=Linus Torvalds" http://example.org

हम –डेटा-urlencode . का उपयोग करेंगे –डेटा . के बजाय निम्न उदाहरणों के लिए चीजों को आसान बनाने के लिए POST अनुरोध करने के लिए।

URL एन्कोडेड फ़ील्ड अलग से निर्दिष्ट हैं

प्रत्येक प्रपत्र फ़ील्ड नाम/मान अलग से पारित किया जा सकता है - यह चीजों को पढ़ने में बहुत आसान बनाता है:

curl --data-urlencode "field1=value1" --data-urlencode "field2=value2" https://example.org/submit.php

CURL का उपयोग करके एकाधिक/फ़ाइल अपलोड करें

फाइलों सहित मल्टीपार्ट फ़ॉर्म अनुरोधों को POST के माध्यम से –फ़ॉर्म . का उपयोग करके सबमिट किया जा सकता है विकल्प। नीचे दिया गया उदाहरण myfile.txt को फ़ाइल अपलोड फ़ॉर्म फ़ील्ड में अपलोड करेगा:

curl --form "admin@wsxdn.com" https://example.org/submit.php

फ़ील्ड और फ़ाइलों और फ़ाइल नामों के साथ बहुखण्डीय

प्रपत्र फ़ील्ड नाम और मान जोड़े को फ़ाइल अपलोड और फ़ाइल नाम . के साथ भी शामिल किया जा सकता है अपलोड की गई फ़ाइल के लिए यदि आप इसे बदलना चाहते हैं:

curl --form "admin@wsxdn.com;filename=newfilename.txt" --form field1=value1 --form field2=value2 https://example.org/submit.php

बिना डेटा

बिना किसी डेटा के POST अनुरोध करने के लिए, बस एक खाली स्ट्रिंग पास करें:

curl --data-urlencode '' https://example.org/submit.php

फ़ाइल अपलोड प्रगति दिखा रहा है

अपलोड की प्रगति पर नज़र रखने के लिए, एक -o आउटपुट . जोड़ें प्रगति पट्टी दिखाने का विकल्प:

curl --tr-encoding -X POST -v -# -o output -T myfile.dat http://example.org/submit.php

फ़ाइल में संग्रहीत डेटा सबमिट करना

यदि किसी फ़ाइल में पहले से संग्रहीत डेटा अपलोड कर रहा है, तो इसे एक कर्ल कमांड में पार्स करने के बजाय एक ही बार में सबमिट किया जा सकता है:

curl --data-urlencode admin@wsxdn.com http://example.org/submit.php

JSON और XML डेटा को उपयुक्त हेडर जोड़कर प्रोग्रामेटिक API सेवाओं के लिए पोस्ट किया जा सकता है:

curl -X POST --data-urlencode @myfile.txt http://example.org/submit.php --header "Content-Type:text/xml"

curl -X POST --data-urlencode @myfile.txt http://example.org/submit.php --header "Content-Type:application/json"

निष्कर्ष

यदि आप अक्सर Linux कमांड लाइन पर काम कर रहे हैं तो कर्ल को माहिर करना महत्वपूर्ण है। प्रोग्रामेटिक एपीआई के साथ इंटरैक्ट करने और अपने स्वयं के सर्वर से डेटा स्थानांतरित करने के लिए इसके उपयोग के अलावा, यह कई कार्य कर सकता है जिसके लिए आपको आमतौर पर एक पूर्ण वेब ब्राउज़र की आवश्यकता हो सकती है।

हमारे अन्य Linux शेल और स्क्रिप्टिंग लेख यहाँ देखें!


  1. डेटा संरचना में चेनिंग के साथ हैशिंग डेटा संरचना में चेनिंग के साथ हैशिंग

    इस खंड में हम देखेंगे कि चेनिंग के साथ हैशिंग क्या है। चेनिंग एक टकराव समाधान तकनीक है। हम टकराव से बच नहीं सकते, लेकिन हम टकराव को कम करने की कोशिश कर सकते हैं, और एक ही हैश मान के लिए कई तत्वों को संग्रहीत करने का प्रयास कर सकते हैं। यह तकनीक मानती है कि हमारा हैश फंक्शन h(x) 0 से 6 तक है। तो 7 स

  1. जावा के साथ MySQL डेटाबेस में डेटा कैसे अपडेट करें? जावा के साथ MySQL डेटाबेस में डेटा कैसे अपडेट करें?

    डेटा को MySQL डेटाबेस टेबल में अपडेट करने के लिए, UPDATE कमांड का उपयोग करें। वाक्य रचना इस प्रकार है - अपना टेबलनाम अपडेट करें अपना कॉलमनाम 1 =मान 1 सेट करें .... एन जहां स्थिति है; सबसे पहले, हमें एक टेबल बनाने की जरूरत है। क्वेरी इस प्रकार है - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.67 सेकंड) आ

  1. जावा के साथ एक MySQL डेटाबेस में डेटा कैसे हटाएं? जावा के साथ एक MySQL डेटाबेस में डेटा कैसे हटाएं?

    DELETE कमांड की मदद से MySQL डेटाबेस से डेटा डिलीट करें। वाक्य रचना इस प्रकार है। अपनेटेबलनाम से हटाएं जहां स्थिति हो; मैं जावा प्रोग्रामिंग भाषा की मदद से एक MySQL डेटाबेस से डेटा हटा दूंगा। सबसे पहले, एक टेबल बनाएं और कुछ रिकॉर्ड डालें। तालिका बनाने के लिए निम्नलिखित क्वेरी है। );क्वेरी ओके, 0 प