इसका इस्तेमाल कैसे करें
- एक curl कमांड curl command में चिपकाएँ। जिन मानों में स्पेस हो उनके आसपास उद्धरण-चिह्न रहने दें।
- हर विकल्प जाँचने के लिए अनुवाद ने क्या किया पढ़ें: मेथड, क्वेरी स्ट्रिंग, बॉडी और हेडर।
- Python कोड अपनी स्क्रिप्ट में कॉपी करें, जिसमें requests लाइब्रेरी इंस्टॉल हो, या JavaScript fetch कोड किसी पेज में।
- अगर कोई नोट या गलती दिखे, तो पहले कमांड सुधारें, फिर कोड दोबारा कॉपी करें।
टूल कौन से curl विकल्प पढ़ता है
टूल वे विकल्प पढ़ता है जो ज्यादातर अनुरोध इस्तेमाल करते हैं। हर विकल्प Python कॉल को एक ज्ञात तरीके से बदलता है, और कोई भी दूसरा विकल्प अनुवाद को संदेश के साथ रोक देता है, ताकि कुछ अनुमान से न लिखा जाए।
- -X और --request मेथड तय करते हैं, जैसा लिखा हो। मैनुअल कहता है यह केवल भेजे गए शब्द को बदलता है।
- -H और --header हेडर जोड़ते हैं। X-Flag; जैसी लाइन खाली मान भेजती है, और कोलन के बाद खाली मान वाला -H एक हेडर हटाता है।
- -d, --data, --data-raw और --data-binary बॉडी तय करते हैं। कई -d मान & से जुड़ते हैं। -G के साथ वे क्वेरी स्ट्रिंग बन जाते हैं।
- -G और --get, -I और --head, और -L और --location मेथड या रीडायरेक्ट का तरीका बदलते हैं।
- -u और --user, -A और --user-agent, और -b और --cookie auth tuple, User-Agent हेडर और Cookie हेडर तय करते हैं।
- --json मान को बॉडी के रूप में भेजता है और JSON हेडर सेट करता है, जिन्हें -H बदल सकता है।
कमांड कैसे पढ़ी जाती है
टेक्स्ट को शब्दों में वैसे बाँटा जाता है जैसे POSIX शेल बाँटता है। सिंगल उद्धरण-चिह्न हर अक्षर रखते हैं। डबल उद्धरण-चिह्न के भीतर बैकस्लैश केवल $, बैकटिक, डबल उद्धरण-चिह्न, बैकस्लैश और नई लाइन को एस्केप करता है। लाइन के आखिर का बैकस्लैश उसे अगली लाइन से जोड़ता है। $HOME जैसे शेल विस्तार नहीं चलते, इसलिए ऐसे मान गलती के रूप में बताए जाते हैं।
टूल क्या नहीं जाँचता
- यह अनुरोध नहीं भेजता, इसलिए नहीं बता सकता कि सर्वर उसे स्वीकार करेगा या नहीं।
- ब्राउज़र fetch पर अपने cross-origin नियम लगाता है। दूसरी साइट का अनुरोध वहाँ रोका जा सकता है, भले ही वही कमांड टर्मिनल में चले। टूल यह जाँचता नहीं।
- यह @ से नाम वाली फ़ाइलें नहीं खोलता, और कुकी फ़ाइलें नहीं पढ़ता।
- यह केवल Python लिखता है। कोड requests लाइब्रेरी इस्तेमाल करता है, जिसे आप अलग से इंस्टॉल करते हैं।
हल किया हुआ उदाहरण: JSON बॉडी के साथ PUT
कमांड एक आइटम को JSON बॉडी के साथ PUT भेजता है। मेथड -X से आता है, हेडर -H से और बॉडी -d से। Python कॉल में वही तीन हिस्से हैं, और चरणों की सूची बताती है कि किस विकल्प ने कौन सा मान दिया।
| curl विकल्प | Python आर्गुमेंट | कोड में मान |
|---|---|---|
| -X PUT | method | 'PUT' |
| -H 'Content-Type: application/json' | headers | 'Content-Type': 'application/json' |
| -d '{"name": "Ada"}' | data | '{"name": "Ada"}' |
अक्सर पूछे जाने वाले सवाल
कोड requests क्यों इस्तेमाल करता है, कोई दूसरी लाइब्रेरी क्यों नहीं?
requests वह Python लाइब्रेरी है जिसमें टूल अनुवाद करता है, और उसका request फ़ंक्शन एक कॉल में मेथड, URL, हेडर, डेटा और auth लेता है। वही कॉल कमांड में दिए हर मेथड के लिए काम करता है।
-X लिखा न हो, फिर भी मेरा अनुरोध POST क्यों जाता है?
curl मैनुअल कहता है कि -d POST इस्तेमाल करता है, और --json भी POST भेजता है। भेजा गया शब्द बदलने के लिए -X लिखें जिसमें आपका मेथड हो, जैसे -X PUT।
अनुवाद में -G क्या करता है?
यह -d के डेटा को URL में क्वेरी स्ट्रिंग के रूप में डालता है और अनुरोध को GET बनाता है, जैसा मैनुअल बताता है। तब Python कॉल में पूरा URL होता है और कोई बॉडी नहीं।
क्या मेरी कमांड के पासवर्ड कहीं भेजे जाते हैं?
नहीं। कमांड आपके ब्राउज़र में पढ़ी जाती है, और कुछ भी सहेजा या हमें भेजा नहीं जाता। फिर भी ऐसे पेज पर जिस पर आपका नियंत्रण नहीं है, टेस्ट पासवर्ड या टोकन इस्तेमाल करें।
परिणाम रीडायरेक्ट का जिक्र क्यों करता है?
curl रीडायरेक्ट का पीछा केवल -L के साथ करता है। requests हर मेथड के लिए डिफ़ॉल्ट रूप से उनका पीछा करता है, और fetch भी, इसलिए नोट बताता है कि बिना -L वाली curl कॉल से कैसे मिलान करें।
क्या टूल @ से नाम वाली फ़ाइल का डेटा पढ़ सकता है?
नहीं। टूल फ़ाइलें नहीं खोलता, इसलिए @ वाला मान गलती के रूप में बताया जाता है। डेटा ही कमांड में चिपकाएँ।
स्रोत
- curl मैनुअल (अंग्रेजी में): -X, -H, -d, -G, -I, -u, -A, -b, -L, --json और --basic
- POSIX Shell Command Language, खंड 2.2 Quoting (अंग्रेजी में)
- Requests (अंग्रेजी में): request, get, post और head का API संदर्भ
आँकड़े और टेक्स्ट आखिरी बार मंगलवार, 10 नवंबर 2026 को जाँचे गए।