2011-12-14 15 views
70

कर्ल विभिन्न http विधि कॉलों की एक श्रृंखला प्रदान करता है जो एक्स के साथ प्रीफ़िक्स्ड हैं, लेकिन बिना वही विधियां भी प्रदान करते हैं। मैंने दोनों की कोशिश की है और मैं अंतर को समझने के लिए प्रतीत नहीं कर सकता। क्या कोई मुझे जल्दी से समझा सकता है कि ये दो ऑपरेशन कैसे भिन्न होते हैं?कर्ल-जीईटी और -एक्स प्राप्त करें

उत्तर

157

डिफ़ॉल्ट रूप से आप स्पष्ट रूप से कहने के लिए कर्ल का उपयोग करते हैं कि कौन सी अनुरोध विधि का उपयोग करना है। यदि आप बस curl http://example.com जैसे HTTP यूआरएल में गुजरते हैं तो यह जीईटी का उपयोग करेगा। यदि आप -d या -F कर्ल का उपयोग POST का उपयोग करेंगे, -I एक HEAD और -T का कारण बन जाएगा, इसे PUT बना देगा।

जो भी कारण के लिए आप इन डिफ़ॉल्ट विकल्प है कि कर्ल आप के लिए, आप -X [WHATEVER] निर्दिष्ट करके उन अनुरोध तरीकों ओवरराइड कर सकते हैं करता है के साथ खुश नहीं हैं। इस प्रकार आप उदाहरण के लिए curl -X DELETE [URL] कर एक डिलीट भेज सकते हैं।

इस प्रकार curl -XGET [URL] करने के लिए व्यर्थ है क्योंकि जीईटी का उपयोग वैसे भी किया जाएगा। उसी तरह से यह curl -X POST -d data [URL]... करने के लिए व्यर्थ है लेकिन आप एक मजेदार और कुछ हद तक दुर्लभ अनुरोध है कि curl -X GET -d data [URL] की तरह कुछ एक GET अनुरोध में एक अनुरोध शरीर भेजता है बना सकते हैं।

खुदाई गहरी

curl -GET (एक भी डैश के उपयोग) इस उद्देश्य के लिए सिर्फ गलत है। यह -G, -E और -T विकल्पों को निर्दिष्ट करने के बराबर है और यह कुछ पूरी तरह से अलग करेगा।

किसी भी मामले को भ्रमित करने के लिए --get नामक एक कर्ल विकल्प भी है। यह -G का लंबा रूप है, जिसका उपयोग -d के साथ निर्दिष्ट डेटा को एक पोस्ट के बजाय जीईटी अनुरोध में परिवर्तित करने के लिए किया जाता है।

(मैं बाद में यहाँ मेरे अपने जवाब के लिए इस्तेमाल किया curl FAQ to cover this को भरने के लिए।) 7.45.0 में

चेतावनी और बाद में

कर्ल के आधुनिक संस्करणों में, यह इस अनावश्यक उपयोग के बारे में उपयोगकर्ताओं को सूचित करेंगे -एक्स जब वर्बोज़ मोड सक्षम होता है (-v) - उपयोगकर्ताओं को जागरूक करने के लिए। this blog post में आगे समझाया और प्रेरित किया।

+1

-XGET नो-ऑप हो सकता है, लेकिन यह इसे स्पष्ट करता है। – mtyson

+0

"डिफ़ॉल्ट रूप से आप स्पष्ट रूप से जो अनुरोध विधि का उपयोग करने कह बिना कर्ल का उपयोग करें। तुम सिर्फ कर्ल http://example.com इसे पाने का उपयोग करेगा की तरह एक HTTP URL में पार कर लेते हैं। आप -d या एफ कर्ल का उपयोग करते हैं पोस्ट का उपयोग करेगा , -मैं एक सिर का कारण बनूंगा और टीटी इसे एक पुट बना देगा। " सब कुछ जो आपके लिए जानना ज़रूरी है। – Donato

0

शायद मैं आपके प्रश्न का पालन नहीं कर रहा हूं, लेकिन ऐसा लगता है कि विकल्प-जी है जो केवल जीईटी विधि का उपयोग करने के लिए कर्ल कह रहा है और फिर -एक्स विकल्प है जो आपको इच्छित तरीकों को बनाने देता है। तो curl -G और curl -XGET एक ही बात होगी। मुझे ए-जीईटी नहीं दिख रहा है ऐसा लगता है कि कर्ल -जी के बाद कुछ भी अनदेखा करता है।

+2

वास्तव में "कर्ल जाओ" 'जाओ' चलो जी -E और -टी बराबर होती है। कर्ल के लिए सभी लंबे नाम विकल्पों का उपयोग दो डैश के साथ किया जाता है, जैसे --url या --user में। –

+0

हाँ यह सही है। मैं वहां नहीं सोच रहा था। – masebase

3

-x [अपने विधि]
एक्स आप डिफ़ॉल्ट ओवरराइड

+0

नहीं, लोअरकेस-एक्स प्रॉक्सी का उपयोग करने के लिए सेट करता है ... –

संबंधित मुद्दे