जवाबों:
डिफ़ॉल्ट रूप से आप स्पष्ट रूप से यह कहे बिना कर्ल का उपयोग करते हैं कि किस विधि का उपयोग करना है। यदि आप बस एक HTTP URL में पास करते हैं जैसे curl http://example.com
यह GET का उपयोग करेगा। यदि आप POST का उपयोग करते हैं -d
या -F
कर्ल करते हैं, -I
तो HEAD का कारण बनेगा और -T
इसे PUT करेगा।
यदि किसी भी कारण से आप इन डिफ़ॉल्ट विकल्पों से खुश नहीं हैं जो आपके लिए कर्ल करता है, तो आप उन अनुरोध विधियों को निर्दिष्ट करके ओवरराइड कर सकते हैं -X [WHATEVER]
। इस तरह आप उदाहरण के लिए एक DELETE भेज कर कर सकते हैं curl -X DELETE [URL]
।
इस प्रकार यह करना व्यर्थ है curl -X GET [URL]
क्योंकि वैसे भी GET का उपयोग किया जाएगा। एक ही नस में यह करने के लिए व्यर्थ है curl -X POST -d data [URL]...
लेकिन आप एक मजेदार और कुछ हद तक दुर्लभ अनुरोध कर सकते हैं जो एक GET अनुरोध में कुछ के साथ एक अनुरोध-निकाय भेजता है curl -X GET -d data [URL]
।
curl -GET
(एकल डैश का उपयोग करना) इस उद्देश्य के लिए गलत है। यह निर्दिष्ट करने के बराबर है -G
, -E
और -T
विकल्प और यह पूरी तरह से अलग कुछ करेगा।
एक कर्ल विकल्प भी है जिसे --get
मामलों को भ्रमित न करने के लिए कहा जाता है। यह जी का लंबा रूप है, जिसका उपयोग पीओटी के -d
बजाय जीईटी अनुरोध के साथ निर्दिष्ट डेटा को परिवर्तित करने के लिए किया जाता है ।
(बाद में मैंने इसे कवर करने के लिए कर्ल एफएक्यू को पॉप्युलेट करने के लिए अपने स्वयं के उत्तर का उपयोग किया ।)
कर्ल के आधुनिक संस्करण उपयोगकर्ताओं को इस अनावश्यक और संभावित हानिकारक उपयोग के बारे में सूचित करेंगे जब क्रिया मोड सक्षम किया जाता है ( -v
) - उपयोगकर्ताओं को जागरूक करने के लिए। इस ब्लॉग पोस्ट में आगे बताया और प्रेरित किया गया है ।
आप कर्ल को -d
विकल्पों का एक सेट बदलने के लिए कह सकते हैं और उन्हें POST के साथ अनुरोध निकाय में भेजने के बजाय, URL के क्वेरी स्ट्रिंग के अंत में रख सकते हैं और `-G के उपयोग के साथ एक GET जारी करते हैं। ऐशे ही:
curl -d name=daniel -d grumpy=yes -G https://example.com/
HTTP अनुरोध में उपयोग -X [WHATEVER]
किए गए अनुरोध की विधि स्ट्रिंग में केवल परिवर्तन का उपयोग होता है। यह दो उदाहरणों के साथ समझना आसान है - एक साथ -X [WHATEVER]
और एक बिना - और प्रत्येक के लिए संबद्ध HTTP अनुरोध शीर्षलेख:
# curl -XPANTS -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.224.86.126) port 80 (#0)
> PANTS / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*
# curl -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.33.50.167) port 80 (#0)
> GET / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*