cURL से कोड जनरेटर
cURL कमांड इनपुट
एक cURL कमांड पेस्ट करें, URL, मेथड, हेडर और रिक्वेस्ट बॉडी को स्वचालित रूप से पार्स करें और JavaScript fetch, Axios, Node fetch, Python requests/httpx, Go net/http, PHP cURL, Java OkHttp, C# HttpClient, PowerShell Invoke-RestMethod, wget में चलने योग्य कोड जनरेट करें।
पार्स की गई रिक्वेस्ट
जनरेट किया गया कोड
curl कमांड पेस्ट करें, सेकंडों में 11 भाषाओं में चलने योग्य HTTP अनुरोध कोड प्राप्त करें।
संबंधित सुझाव
उपयोग के मामले
- Chrome DevTools Network पैनल में अनुरोध पर राइट क्लिक करके「Copy as cURL」चुनने के बाद, इस टूल में पेस्ट करके सीधे अपनी प्रोजेक्ट की भाषा के कोड में बदलें, हाथ से अनुरोध लिखने से 10 गुना तेज
- तीसरे पक्ष के API को इंटीग्रेट करते समय डॉक्यूमेंटेशन में curl उदाहरण दिया हो, तो तेजी से Python requests/Java OkHttp/C# HttpClient कोड में बदलकर प्रोजेक्ट में एम्बेड करें
- प्रोडक्शन वातावरण के इंटरफेस को डीबग करते समय पैकेट कैप्चर टूल (Charles/mitmproxy/Wireshark) से curl कमांड कॉपी करें, यूनिट टेस्ट कोड में बदलकर सीधे सत्यापित करें
- API डॉक्यूमेंटेशन लिखते समय कई भाषाओं के उदाहरणों के बीच तेजी से स्विच करें, विभिन्न तकनीक स्टैक के पाठकों के लिए तैयार चलने योग्य उदाहरण कोड प्रदान करें
- ऑनलाइन अनुरोध समस्याओं का निवारण करते समय, समस्या को curl से रीप्रोड्यूस करने के बाद कोड रूप में बदलकर सहकर्मियों को भेजें या Issue खोलें, दूसरों के लिए सीधे रीप्रोड्यूस करना आसान बनाएं
- क्रॉस-लैंग्वेज डेवलपमेंट करते समय (जैसे Python से Go प्रोजेक्ट में जाते समय), मौजूदा curl अनुरोधों को तेजी से नई भाषा के HTTP क्लाइंट कॉल कोड में बदलें, डॉक्यूमेंटेशन खोजने का समय बचाएं
- Shell स्क्रिप्ट में curl कमांड को Windows ऑपरेशंस सहकर्मियों के लिए PowerShell Invoke-RestMethod में बदलें या इसके विपरीत
- HTTP प्रोटोकॉल सीखें: एक ही अनुरोध को विभिन्न भाषाओं में लागू करने की तुलना करके, प्रत्येक HTTP क्लाइंट लाइब्रेरी के API अंतर को समझें
- curl -X POST -d 'json' कमांड को सही Content-Type और JSON सीरियलाइजेशन के साथ तेजी से कोड में बदलें, हाथ से स्ट्रिंग कॉन्सटिनेशन की त्रुटियों से बचें
- CI/CD स्क्रिप्ट में API कॉल की आवश्यकता होने पर, स्थानीय रूप से डीबग किए गए curl कमांड को संबंधित स्क्रिप्ट भाषा के कोड में बदलकर पाइपलाइन में एम्बेड करें
उपयोग कैसे करें
- curl कमांड प्राप्त करें: ब्राउज़र DevTools Network पैनल में अनुरोध पर राइट क्लिक करें → Copy → Copy as cURL (bash); या Postman/Charles/mitmproxy जैसे पैकेट कैप्चर टूल से curl निर्यात करें; या अपना खुद का curl कमांड लिखें
- इनपुट बॉक्स में पेस्ट करें: curl कमांड को शीर्ष इनपुट क्षेत्र में पेस्ट करें, सिंगल-लाइन/मल्टी-लाइन (बैकस्लैश से जारी) कमांड का समर्थन करता है, लाइन ब्रेक स्वचालित रूप से हटा दिए जाते हैं
- उदाहरण बटन पर क्लिक करके संदर्भ लें: फॉर्मेट नहीं पता हो तो「उदाहरण 1/2/3」बटन पर क्लिक करके प्रीसेट curl कमांड लोड करके प्रभाव देखें
- पार्स परिणाम देखें: पार्स परिणाम क्षेत्र में URL, Header की संख्या, Body वर्णों की संख्या और संपीड़न/रीडायरेक्ट/प्रमाणपत्र स्किप/Basic प्रमाणीकरण जैसे बैज प्रदर्शित होते हैं, समस्या होने पर नारंगी चेतावनी दिखाई देती है
- आवश्यकतानुसार मेथड समायोजित करें: यदि स्वचालित पहचाना गया मेथड गलत है (जैसे curl में -X POST नहीं जोड़ा गया लेकिन POST होना चाहिए), ड्रॉपडाउन मेनू से HTTP मेथड को मैन्युअल रूप से बदलें
- लक्षित भाषा चुनें: लक्षित कोड क्षेत्र में संबंधित भाषा बटन पर क्लिक करें (fetch/Axios/Python requests/Go/PHP/Java/C#/PowerShell/wget आदि)
- कोड कॉपी करें:「कोड कॉपी करें」बटन पर क्लिक करें, अपने प्रोजेक्ट/टर्मिनल में पेस्ट करके चलाएं
विशेषताएं
- 11 लक्षित भाषाएं/लाइब्रेरी: फ्रंटएंड (JS fetch/Axios), Node.js (node-fetch), Python (requests/httpx), Go (net/http), PHP (cURL), Java (OkHttp), C# (HttpClient), PowerShell (Invoke-RestMethod), कमांड लाइन (wget) सहित मुख्य तकनीक स्टैक को एक ही स्थान पर कवर करता है
- स्मार्ट curl कमांड पार्सिंग: URL, HTTP मेथड, हेडर, बॉडी को स्वचालित पहचानता है, सिंगल/डबल कोट्स, बैकस्लैश एस्केप, मल्टी-लाइन कमांड जॉइनिंग (बैकस्लैश लाइन ब्रेक) का समर्थन करता है
- सामान्य curl पैरामीटर्स का पूर्ण समर्थन: -X/--request मेथड निर्दिष्ट करना, -H/--header हेडर, -d/--data/-F फॉर्म/JSON बॉडी, -u/--user Basic प्रमाणीकरण, -A/--user-agent UA, -b/--cookie Cookie, -e/--referer Referer, -L/--location रीडायरेक्ट फॉलो, --compressed स्वचालित डीकंप्रेसन, -k/--insecure प्रमाणपत्र सत्यापन स्किप, -I/--head HEAD अनुरोध
- JSON बॉडी स्मार्ट पहचान: Content-Type application/json होने पर स्वचालित रूप से JSON.parse/JSON.stringify/requests(json=)/json= सीरियलाइजेशन का उपयोग करता है, जनरेट किया कोड स्ट्रिंग के बजाय सीधे ऑब्जेक्ट का उपयोग करता है, भाषा की आदतों के अनुरूप
- Basic प्रमाणीकरण स्वचालित रूपांतरण: -u user:pass पहचानने पर स्वचालित रूप से Authorization: Basic <base64> हेडर जनरेट करता है, लक्षित भाषा में नेटिव auth मैकेनिज्म का उपयोग करता है (Python auth=, OkHttp credentials, C# credentials आदि)
- सुरक्षा फ्लैग बैज अलर्ट: --compressed/-L/-k/-u जैसे पैरामीटर्स को स्वचालित पहचानता है, पार्स परिणामों में बैज के साथ स्पष्ट रूप से प्रदर्शित करता है
- अनुरोध मेथड मैन्युअल रूप से स्विच किया जा सकता है: curl मेथड स्वचालित पार्स होने के बाद, उपयोगकर्ता को ड्रॉपडाउन मेनू से मैन्युअल रूप से मेथड बदलने की अनुमति देता है (GET/POST/PUT आदि 7 प्रकार), तुरंत संबंधित कोड देख सकते हैं
- स्ट्रिंग एस्केप सुरक्षा: प्रत्येक भाषा के लिए कोड जनरेट करते समय भाषा के नेटिव स्ट्रिंग लिटरल का उपयोग किया जाता है (Python ट्रिपल कोट्स/बैकस्लैश एस्केप, Go बैकटिक रॉ स्ट्रिंग, C# @"", PHP सिंगल कोट, Java डबल कोट एस्केप), कोड चलते समय सिंटैक्स त्रुटि से बचाता है
- पार्स त्रुटि अलर्ट: अमान्य curl कमांड दर्ज करने पर (जैसे URL गायब, curl से शुरू नहीं, POST के लिए बॉडी नहीं आदि) नारंगी चेतावनी बैज के साथ विशिष्ट समस्या बताई जाती है
- 3 उदाहरण एक क्लिक में लोड: GET+Token प्रमाणीकरण, POST+JSON, Basic प्रमाणीकरण+रीडायरेक्ट फॉलो सहित 3 विशिष्ट उदाहरण प्रदान करता है, टूल की क्षमता को तेजी से देख सकते हैं
- एक क्लिक में इनपुट साफ़ करें: Clear बटन तेजी से रीसेट करता है, नया कमांड पेस्ट करते समय अवशेष नहीं रहता
- पूरी तरह से स्थानीय प्रोसेसिंग: curl कमांड और अनुरोध सामग्री पूरी तरह से ब्राउज़र में स्थानीय रूप से पार्स और रूपांतरित होती है, किसी भी सर्वर पर अपलोड नहीं होती, संवेदनशील Token/पासवर्ड लीक नहीं होते
- एक क्लिक में कोड कॉपी: कोड जनरेट होने के बाद Copy बटन पर क्लिक करके क्लिपबोर्ड पर कॉपी करें, सीधे प्रोजेक्ट में पेस्ट करके चलाएं
- HTTPS असुरक्षित मोड अनुकूलन: -k/--insecure पैरामीटर Node/Go/Python/PHP/C#/PowerShell आदि भाषाओं में संबंधित TLS प्रमाणपत्र सत्यापन स्किप कॉन्फ़िगरेशन जनरेट करता है (wget --no-check-certificate का उपयोग करता है, C# ServicePointManager संकेत छोड़ता है, Node NODE_TLS_REJECT_UNAUTHORIZED सेट करता है)
सामान्य प्रश्न
cURL से कोड जनरेटर का क्या उपयोग है? सीधे curl कमांड क्यों नहीं उपयोग करते?
कोड में सीधे curl कमांड को कॉल करना (जैसे shell_exec, subprocess.run) के लिए चाइल्ड प्रोसेस शुरू करने की आवश्यकता होती है, जो न तो सुरक्षित है और न ही त्रुटियों को हैंडल करना, प्रतिक्रिया हेडर प्राप्त करना, प्रकार रूपांतरण करना आसान है। प्रोडक्शन कोड को प्रोग्रामिंग भाषा के नेटिव HTTP क्लाइंट का उपयोग करना चाहिए (Python requests, Java OkHttp, JS fetch आदि)। curl-to-code का मूल्य यह है कि यह DevTools/पैकेट कैप्चर टूल से आपके द्वारा कॉपी किए गए curl कमांड को स्वचालित रूप से संबंधित भाषा के HTTP क्लाइंट कोड में अनुवादित करता है, API डॉक्यूमेंटेशन खोजने, मैन्युअल कोट एस्केप करने, JSON/प्रमाणीकरण हैंडल करने जैसे यांत्रिक कार्य से बचाता है, कॉपी-पेस्ट करके चला सकते हैं।
कौन सी लक्षित भाषाएं/लाइब्रेरी समर्थित हैं?
वर्तमान में 11 लक्ष्य समर्थित हैं: JavaScript fetch (ब्राउज़र नेटिव), Axios (Node/ब्राउज़र सामान्य HTTP लाइब्रेरी), Node.js node-fetch, Python requests (Python की सबसे लोकप्रिय HTTP लाइब्रेरी), Python httpx (नई पीढ़ी HTTP/2 और async समर्थित HTTP लाइब्रेरी), Go net/http (Go मानक लाइब्रेरी), PHP cURL एक्सटेंशन, Java OkHttp (Android/बैकएंड सामान्य उच्च प्रदर्शन लाइब्रेरी), C# HttpClient (.NET मानक HTTP क्लाइंट), PowerShell Invoke-RestMethod (Windows ऑटोमेशन स्क्रिप्ट के लिए सामान्य), wget (कमांड लाइन डाउनलोड टूल)। यदि आपको सूची में नहीं वाली भाषा चाहिए (जैसे Ruby, Rust reqwest, Dart http, Swift URLSession आदि), तो आप पेज से फीडबैक दे सकते हैं, हम मांग के अनुसार जोड़ेंगे।
Chrome DevTools से curl कमांड कैसे कॉपी करें?
चरण: 1. Chrome/Edge खोलें, F12 दबाकर DevTools खोलें; 2. Network पैनल पर स्विच करें; 3. पेज रीफ्रेश करें या लक्षित अनुरोध ट्रिगर करें; 4. अनुरोध सूची में लक्षित अनुरोध ढूंढें (XHR/JS से फ़िल्टर कर सकते हैं); 5. अनुरोध पर राइट क्लिक करें → Copy →「Copy as cURL (bash)」चुनें (bash संस्करण अनुशंसित है, संगतता सबसे अच्छी है); 6. इस टूल के इनपुट बॉक्स में पेस्ट करें। Copy as fetch न चुनें (वह JS कोड है curl नहीं)। Firefox/Safari में प्रक्रिया समान है, सभी में Copy as cURL विकल्प होता है।
curl कमांड की कोट हैंडलिंग बहुत जटिल है, कौन से प्रारूप समर्थित हैं?
टूल bash शैली के सिंगल कोट, डबल कोट, बैकस्लैश एस्केप का समर्थन करता है; Windows cmd के डबल कोट+^एस्केप; PowerShell के बैकटिक एस्केप को मूल रूप से पहचानता है। bash प्रारूप का उपयोग करना अनुशंसित है (सिंगल कोट से लपेटकर)। मल्टी-लाइन कमांड (बैकस्लैश\ से जारी) भी पेस्ट करने के लिए समर्थित हैं, टूल स्वचालित रूप से लाइन ब्रेक और निरंतरता वर्ण हटा देता है। यदि आपका curl कमांड विशेष रूप से जटिल है (shell वेरिएबल, कमांड प्रतिस्थापन $(...), पाइप | आदि शामिल हैं), तो पहले टर्मिनल में echo कमांड चलाकर विस्तारित वास्तविक curl को प्रिंट करके कॉपी करने, या पहले मैन्युअल रूप से सरल बनाने (वेरिएबल को वास्तविक मानों से बदलने) की सिफारिश की जाती है।
curl में -d से JSON भेजने पर सर्वर को विकृत/400 क्यों मिलता है?
यह सबसे आम curl त्रुटियों में से एक है। curl के -d/--data विकल्प का डिफ़ॉल्ट Content-Type application/x-www-form-urlencoded (फॉर्म प्रारूप) है, application/json नहीं। यदि आप सीधे curl -d '{"name":"demo"}' url करते हैं, तो सर्वर फॉर्म के रूप में पार्स करेगा (पार्स विफल होगा या खाली डेटा प्राप्त होगा)। JSON को सही ढंग से भेजने के लिए स्पष्ट रूप से -H "Content-Type: application/json" हेडर जोड़ना आवश्यक है। यह टूल बॉडी का पता लगाने पर लेकिन Content-Type नहीं होने पर नारंगी चेतावनी के साथ सूचित करता है।
जनरेट किया कोड सीधे कॉपी करके चलाया जा सकता है? कौन सी निर्भरताएं इंस्टॉल करनी होंगी?
अधिकांश भाषाओं का कोड मानक लाइब्रेरी के साथ सीधे चल सकता है (fetch/Go net/http/PHP cURL/C# HttpClient/PowerShell/wget सभी बिल्ट-इन हैं), अतिरिक्त इंस्टॉलेशन की आवश्यकता नहीं है। अन्य को तृतीय-पक्ष लाइब्रेरी की आवश्यकता है: Axios (npm install axios आवश्यक), node-fetch (npm install node-fetch आवश्यक, Node 18+ में बिल्ट-इन fetch है इंस्टॉलेशन की आवश्यकता नहीं), Python requests (pip install requests), Python httpx (pip install httpx), Java OkHttp (Maven/Gradle से okhttp3 निर्भरता जोड़नी आवश्यक)। कोड डिफ़ॉल्ट रूप से प्रतिक्रिया स्थिति कोड और पाठ प्रिंट करता है, आप आवश्यकतानुसार प्रसंस्करण तर्क को संशोधित कर सकते हैं।
क्या multipart/form-data फ़ाइल अपलोड (-F पैरामीटर) समर्थित है?
बुनियादी समर्थन: -F पैरामीटर को बॉडी के रूप में पहचाना जाता है, लेकिन वर्तमान में जनरेट किया कोड @file को वास्तविक फ़ाइल अपलोड के बजाय शाब्दिक स्ट्रिंग के रूप में हैंडल करता है। फ़ाइल अपलोड के लिए स्थानीय फ़ाइल सामग्री पढ़ने की आवश्यकता होती है, प्रत्येक भाषा का हैंडलिंग तरीका काफी अलग है (JS FormData/FormData.append का उपयोग करता है, Python files= पैरामीटर का उपयोग करता है, Go multipart.Writer का उपयोग करता है)। टूल द्वारा जनरेट किए गए कोड के आधार पर, संबंधित लाइब्रेरी के फ़ाइल अपलोड डॉक्यूमेंटेशन को देखकर समायोजन करने की सिफारिश की जाती है। भविष्य के संस्करणों में multipart समर्थन को मजबूत किया जाएगा।
क्या यह मेरे curl कमांड और संवेदनशील डेटा को अपलोड करेगा?
बिल्कुल नहीं। सभी पार्सिंग और कोड निर्माण प्रक्रिया 100% आपके ब्राउज़र में स्थानीय रूप से पूरी होती है (शुद्ध फ्रंट-एंड JavaScript), curl कमांड, हेडर में Token/Cookie/पासवर्ड, बॉडी का डेटा किसी भी सर्वर पर नहीं भेजा जाता। आप इस टूल को ऑफ़लाइन उपयोग कर सकते हैं, संवेदनशील जानकारी लीक होने की कोई चिंता नहीं है।
-k/--insecure प्रमाणपत्र सत्यापन स्किप प्रत्येक भाषा के कोड में कैसे हैंडल किया जाता है?
-k पैरामीटर का पता लगने पर, यह टूल प्रत्येक लक्षित भाषा के लिए संबंधित प्रमाणपत्र सत्यापन स्किप कॉन्फ़िगरेशन जनरेट करता है: Python requests/httpx verify=False का उपयोग करते हैं; Node.js process.env.NODE_TLS_REJECT_UNAUTHORIZED='0' सेट करता है; Go कस्टम tls.Config{InsecureSkipVerify: true} बनाता है; PHP CURLOPT_SSL_VERIFYPEER=false और CURLOPT_SSL_VERIFYHOST=0 सेट करता है; Java OkHttp के लिए कस्टम TrustManager आवश्यक है (कोड लंबा होने के कारण टिप्पणी में संकेत दिया जाता है); C# कस्टम ServerCertificateCustomValidationCallback परिभाषित कर सकता है; PowerShell -SkipCertificateCheck का उपयोग करता है (PS6+); wget --no-check-certificate का उपयोग करता है; ब्राउज़र fetch प्रमाणपत्र स्किप नहीं कर सकता (ब्राउज़र सुरक्षा प्रतिबंध, कोड में टिप्पणी के साथ स्पष्ट किया जाता है)। नोट: ये कॉन्फ़िगरेशन केवल स्थानीय डेवलपमेंट परीक्षण के लिए हैं, प्रोडक्शन वातावरण में प्रमाणपत्र सत्यापन को बिल्कुल भी अक्षम न करें।
जनरेट किया Go कोड रीडायरेक्ट फॉलो क्यों नहीं करता? -L जोड़ने पर फॉलो करना चाहिए ना?
Go के net/http का डिफ़ॉल्ट व्यवहार रीडायरेक्ट फॉलो नहीं करना है (curl के डिफ़ॉल्ट व्यवहार के अनुरूप, curl को स्पष्ट रूप से -L जोड़ना ही फॉलो करता है)। टूल -L पैरामीटर का पता लगने पर खाली client जनरेट करता है (http.Client{} का डिफ़ॉल्ट CheckRedirect nil है, यानी 10 रीडायरेक्ट तक फॉलो करता है); -L नहीं जोड़ने पर CheckRedirect http.ErrUseLastResponse रिटर्न करने वाला client जनरेट करता है, रीडायरेक्ट फॉलो नहीं करता (curl के -L न होने के व्यवहार के अनुरूप)। यदि आप चाहते हैं कि Go हमेशा रीडायरेक्ट फॉलो करे, तो कोड में सीधे http.DefaultClient का उपयोग कर सकते हैं या कस्टम Client{Timeout: ...} परिभाषित कर सकते हैं।
लॉगिन/Cookie वाले अनुरोध कैसे हैंडल करें?
दो तरीके हैं:①लॉगिन किए हुए ब्राउज़र के DevTools से सीधे curl कॉपी करें (अनुशंसित): अनुरोध पर राइट क्लिक करें→Copy as cURL, इस प्रकार cookie/header स्वचालित रूप से शामिल हो जाते हैं, पेस्ट करके रूपांतरित करने के बाद सीधे चला सकते हैं;②curl में -b/--cookie से मैन्युअल रूप से Cookie मान निर्दिष्ट करें (-b 'sessionid=abc; token=xyz'), -u/--user से Basic प्रमाणीकरण निर्दिष्ट करें, -H "Authorization: Bearer xxx" से Bearer Token निर्दिष्ट करें, टूल इन हेडर को यथावत रूपांतरित करता है। नोट: ब्राउज़र से कॉपी की गई Cookie की वैधता अवधि होती है, कुछ घंटों के बाद समाप्त हो सकती है और फिर से कॉपी करने की आवश्यकता हो सकती है।
Python requests में JSON बॉडी data= के बजाय json= पैरामीटर का उपयोग क्यों करता है?
Python requests लाइब्रेरी का data पैरामीटर dict को application/x-www-form-urlencoded के रूप में एन्कोड करता है, स्ट्रिंग को यथावत भेजता है, जबकि json पैरामीटर dict/लिस्ट को स्वचालित रूप से JSON स्ट्रिंग में सीरियलाइज करता है और Content-Type: application/json हेडर को स्वचालित रूप से सेट करता है (यदि आपने मैन्युअल रूप से सेट नहीं किया है)। यह टूल Content-Type के application/json होने और बॉडी के वैध JSON होने का पता लगाने पर, JSON को स्वचालित रूप से Python dict के रूप में पार्स करता है और json= पैरामीटर का उपयोग करता है, जिससे कोड अधिक साफ होता है, मैन्युअल json.dumps की आवश्यकता नहीं होती, Content-Type हेडर भूलने की समस्या नहीं होती। गैर-JSON बॉडी (फॉर्म/XML/सादा पाठ) data= पैरामीटर के साथ कच्चे स्ट्रिंग के रूप में भेजी जाती है।
curl कमांड बहुत लंबा है और बहुत सारे हेडर हैं, जनरेट किया कोड सभी हेडर ले जा रहा है तो क्या करें?
DevTools से कॉपी किया गया curl कमांड ब्राउज़र द्वारा स्वचालित रूप से जोड़े गए बड़ी संख्या में हेडर शामिल करता है (Host, Connection, Accept, Accept-Encoding, Accept-Language, Sec-Fetch-*, sec-ch-ua, Upgrade-Insecure-Requests आदि), इन हेडर में से अधिकांश को कोड में स्पष्ट रूप से सेट करने की आवश्यकता नहीं होती (HTTP क्लाइंट स्वचालित रूप से Accept-Encoding, Connection, Host, Content-Length आदि जैसे उचित डिफ़ॉल्ट मान जोड़ता है)। जनरेट किए गए कोड को कॉपी करने के बाद, अनावश्यक हेडर को मैन्युअल रूप से हटाने की सिफारिश की जाती है, कम से कम इन्हें रखें: Content-Type, Authorization, Cookie (यदि आवश्यक हो), कस्टम व्यावसायिक हेडर। अतिरिक्त हेडर न केवल कोड को बदसूरत बनाते हैं, बल्कि व्यवहार असामान्यताएं भी पैदा कर सकते हैं (जैसे Accept-Encoding को स्पष्ट रूप से सेट करना लेकिन क्लाइंट स्वचालित रूप से डीकंप्रेस नहीं करता)।
क्या HTTPS प्रॉक्सी (-x/--proxy) पैरामीटर समर्थित है?
वर्तमान में HTTP प्रॉक्सी (-x/--proxy) पैरामीटर स्वचालित रूप से रूपांतरित नहीं होता है। प्रॉक्सी कॉन्फ़िगरेशन प्रत्येक भाषा में काफी अलग है (JS fetch में नेटिव प्रॉक्सी समर्थन नहीं है Agent की आवश्यकता है, Python proxies= पैरामीटर का उपयोग करता है, Go Transport.Proxy के माध्यम से, PHP CURLOPT_PROXY का उपयोग करता है, C# WebProxy का उपयोग करता है, Java OkHttpClient.Builder().proxy() का उपयोग करता है)। प्रॉक्सी हेडर (प्रॉक्सी का अपना प्रमाणीकरण) भी अलग से हैंडल करने की आवश्यकता है। वर्तमान संस्करण में प्रॉक्सी से संबंधित पैरामीटर अनदेखा किए जाते हैं, आप जनरेट किए गए कोड के आधार पर मैन्युअल रूप से प्रॉक्सी कॉन्फ़िगरेशन जोड़ सकते हैं, भविष्य के संस्करणों में प्रॉक्सी समर्थन को मजबूत किया जाएगा।
curlconverter.com जैसे ऑनलाइन टूल की तुलना में क्या अंतर है?
curlconverter.com जैसे प्रसिद्ध टूल की तुलना में, GeekFormat के curl-to-code के लाभ:①पूरी तरह से स्थानीय प्रोसेसिंग (curlconverter का प्रोसेसिंग लॉजिक सर्वर साइड या क्लाइंट साइड है), डेटा अपलोड नहीं करता अधिक सुरक्षित;②हिंदी इंटरफेस और हिंदी स्पष्टीकरण, स्थानीय डेवलपर्स के लिए अनुकूल;③जनरेट किया कोड वास्तविक प्रोडक्शन उपयोग के लिए अधिक उपयुक्त है (जैसे Python requests JSON बॉडी के लिए data= के बजाय json= पैरामीटर का उपयोग करता है, Go का डिफ़ॉल्ट व्यवहार curl के साथ संरेखित है, C# Content-Type को सही ढंग से हैंडल करता है application/json को हार्डकोड नहीं करता);④साथ में गहन दस्तावेज़ीकरण, FAQ, तुलना तालिकाएं, समस्या निवारण, केवल कोड जनरेट नहीं करता बल्कि यह समझने में भी मदद करता है कि ऐसा क्यों लिखा गया;⑤मुफ्त विज्ञापन-मुक्त, पंजीकरण या लॉगिन की आवश्यकता नहीं, बिना किसी नेटवर्क अनुरोध के उपयोग योग्य।
समस्या निवारण
curl कमांड पेस्ट करने के बाद「URL नहीं मिला」चेतावनी दिखाई देती है
URL से पहले curl कमांड गायब है (सीधे एक HTTP हेडर पेस्ट कर दिया है) URL लाइन ब्रेक किया गया लेकिन बैकस्लैश से जारी नहीं रखा, टूल मल्टी-लाइन जॉइन किए गए URL को पहचान नहीं पा रहा URL में विशेष वर्ण (& आदि) shell द्वारा काट दिए गए URL सिंगल कोट में है लेकिन नेस्टेड सिंगल कोट एस्केप नहीं किए गए
जनरेट किया Python requests कोड चलने पर 401/403 रिटर्न करता है
Cookie/Token समाप्त हो गया: DevTools से curl कॉपी करते समय Cookie उस समय मान्य था, कुछ समय बाद समाप्त हो जाता है User-Agent गायब: कुछ API User-Agent सत्यापित करते हैं, ब्राउज़र से कॉपी किया curl ब्राउज़र UA ले जाता है लेकिन जनरेट कोड इसे संरक्षित रख सकता है या खो सकता है Referer/Origin हेडर गायब: कुछ हॉटलिंक सुरक्षा/CSRF सत्यापन इन हेडर की जांच करते हैं sessionid सही ढंग से पास नहीं हुआ: कुछ साइटों को पहले लॉगिन करके Cookie प्राप्त करने के बाद अनुरोध करने की आवश्यकता होती है
POST JSON डेटा भेज रहे हैं लेकिन सर्वर प्राप्त नहीं कर पा रहा
Content-Type: application/json हेडर गायब: curl -d डिफ़ॉल्ट Content-Type application/x-www-form-urlencoded है, JSON नहीं JSON स्ट्रिंग में डबल कोट्स एस्केप नहीं किए गए: विभिन्न Shell (bash/cmd/PowerShell) के कोट हैंडलिंग अलग है, गलत प्रारूप में कॉपी करने से JSON अधूरा हो सकता है जनरेट किए गए कोड में JSON डबल एस्केप हो गया (ऑब्जेक्ट को फिर से JSON.stringify किया गया) बॉडी में हिंदी/चीनी वर्ण हैं लेकिन एन्कोड नहीं किए गए
जनरेट कोड चलाने के बाद SSL/TLS प्रमाणपत्र त्रुटि आती है
लक्षित HTTPS साइट स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रही है: curl में -k जोड़ा गया लेकिन कोड में प्रभावी नहीं हुआ (जांचें कि प्रमाणपत्र स्किप कॉन्फ़िगरेशन जनरेट हुआ है या नहीं) Node.js वातावरण चर सेट नहीं है: -k का पता लगने पर process.env.NODE_TLS_REJECT_UNAUTHORIZED='0' जनरेट होता है, fetch कॉल से पहले रखना आवश्यक है कंपनी प्रॉक्सी SSL Inspection (मैन-इन-द-मिडिल प्रमाणपत्र): कंपनी रूट प्रमाणपत्र को ट्रस्ट स्टोर में जोड़ना आवश्यक है, सत्यापन को अक्षम करने के बजाय Python में verify=False केवल requests के लिए प्रभावी है, अंतर्निहित urllib3 अभी भी InsecureRequestWarning देता है
जनरेट कोड की प्रतिक्रिया परिणाम curl से अलग है
स्वचालित रूप से जोड़े गए हेडर खो गए: ब्राउज़र स्वचालित रूप से Host/Connection/Accept/Accept-Encoding/Accept-Language/Sec-Fetch-* आदि हेडर जोड़ता है, इन हेडर को संरक्षित रखना या न रखना प्रतिक्रिया को प्रभावित करता है रीडायरेक्ट हैंडलिंग असंगत: fetch डिफ़ॉल्ट रूप से रीडायरेक्ट फॉलो करता है, Go डिफ़ॉल्ट रूप से फॉलो नहीं करता, यह टूल -L पैरामीटर के अनुसार संबंधित कॉन्फ़िगरेशन जनरेट करता है डीकंप्रेसन अंतर: --compressed होने पर कुछ लाइब्रेरी में स्वचालित डीकंप्रेसन के लिए स्पष्ट कॉन्फ़िगरेशन आवश्यक है HTTP/2 बनाम HTTP/1.1: curl डिफ़ॉल्ट रूप से HTTP/2 नेगोशिएट करता है, कुछ पुराने सर्वर HTTP संस्करण के प्रति संवेदनशील हैं Cookie Jar: curl -b से Cookie हर बार मैन्युअल रूप से भेजी जाती है, कुछ लाइब्रेरी Cookie को स्वचालित रूप से प्रबंधित करती हैं जिससे बहु-चरण अनुरोधों में Cookie बदल जाती है
कॉपी किया curl कमांड बहुत लंबा होने पर पेस्ट कट जाता है/त्रुटि होती है
बहुत अधिक हेडर हैं (जैसे ब्राउज़र ने स्वचालित रूप से दर्जनों हेडर जोड़े हैं): अनावश्यक हेडर को मैन्युअल रूप से हटा दें (sec-ch-ua, sec-fetch-*, Accept, Accept-Language जैसे गैर-आवश्यक हेडर) Base64 एन्कोडेड फ़ाइल/बड़ी बॉडी कमांड को बहुत लंबा बना रही है: --data-binary @file से फ़ाइल से बॉडी पढ़ने का उपयोग करें Windows cmd कमांड लाइन लंबाई सीमा (8191 वर्ण): PowerShell या WSL के अंतर्गत bash प्रारूप curl कॉपी करने का उपयोग करें कॉपी करते समय रिक्त स्थान वर्णों से कट गया: सुनिश्चित करें कि DevTools से राइट क्लिक करके पूरी तरह से कॉपी किया है
शब्दकोश
- cURL / curl
- ओपन सोर्स कमांड लाइन टूल और libcurl लाइब्रेरी, कमांड लाइन में URL के माध्यम से HTTP/HTTPS/FTP जैसे प्रोटोकॉल अनुरोध भेजने के लिए उपयोग किया जाता है, डेवलपर्स के लिए API डीबगिंग का सबसे आम टूल है।
- HTTP मेथड
- HTTP अनुरोध क्रिया, सामान्य हैं GET (पढ़ना), POST (बनाना), PUT (संपूर्ण अपडेट), PATCH (आंशिक अपडेट), DELETE (हटाना), HEAD (हेडर प्राप्त करना), OPTIONS (सर्वर क्षमताएं क्वेरी करना)।
- अनुरोध हेडर (Header)
- HTTP अनुरोध में मेटाडेटा कुंजी-मान जोड़े, जैसे Content-Type, Authorization, User-Agent, Cookie, Accept आदि, curl में -H/--header से निर्दिष्ट किए जाते हैं।
- अनुरोध बॉडी (Body)
- HTTP अनुरोध का डेटा भाग, POST/PUT/PATCH के लिए सामान्य, curl में -d/--data/--data-binary/-F से निर्दिष्ट की जाती है, सामान्य प्रारूप JSON, form-urlencoded, multipart/form-data हैं।
- Content-Type
- अनुरोध/प्रतिक्रिया हेडर, बॉडी का मीडिया प्रकार बताता है। application/json JSON, application/x-www-form-urlencoded URL एन्कोडेड फॉर्म, multipart/form-data फ़ाइल अपलोड फॉर्म को इंगित करता है।
- Basic प्रमाणीकरण
- HTTP मूल प्रमाणीकरण, Authorization: Basic base64(user:pass) हेडर के माध्यम से उपयोगकर्ता नाम पासवर्ड पास करता है, curl में -u user:pass से निर्दिष्ट किया जाता है।
- Bearer Token
- टोकन-आधारित प्रमाणीकरण विधि, Authorization: Bearer <token> हेडर के माध्यम से पास की जाती है, JWT/OAuth2 में आमतौर पर उपयोग की जाती है।
- User-Agent
- क्लाइंट प्रकार (ब्राउज़र/क्रॉलर/स्क्रिप्ट) को इंगित करने वाला हेडर, curl डिफ़ॉल्ट रूप से "curl/संस्करण" भेजता है, कई वेबसाइटें गैर-ब्राउज़र UA को ब्लॉक करती हैं, आमतौर पर -A से निर्दिष्ट किया जाता है।
- Cookie
- सर्वर द्वारा Set-Cookie के माध्यम से भेजे गए, ब्राउज़र द्वारा बाद के अनुरोधों में Cookie हेडर के माध्यम से वापस भेजे गए कुंजी-मान जोड़े, सत्र बनाए रखने के लिए उपयोग किए जाते हैं। curl -b Cookie भेजता है, -c Cookie सहेजता है।
- Referer
- वर्तमान अनुरोध के स्रोत पृष्ठ URL को इंगित करने वाला हेडर, कुछ हॉटलिंक सुरक्षा/CSRF सत्यापन जांचते हैं। curl -e से सेट किया जाता है।
- रीडायरेक्ट (3xx)
- जब सर्वर 301/302/303/307/308 स्थिति कोड लौटाता है तो ब्राउज़र को नए URL पर जाने के लिए कहता है। curl डिफ़ॉल्ट रूप से फॉलो नहीं करता, -L/--location से फॉलो करता है।
- --compressed
- curl विकल्प, स्वचालित रूप से Accept-Encoding: deflate, gzip हेडर जोड़ता है और प्रतिक्रिया को स्वचालित रूप से डीकंप्रेस करता है। सेट नहीं करने पर प्रतिक्रिया संपीड़ित विकृत डेटा हो सकती है।
- -k/--insecure
- curl विकल्प, HTTPS प्रमाणपत्र सत्यापन स्किप करता है, केवल स्व-हस्ताक्षरित प्रमाणपत्र परीक्षण वातावरण के लिए उपयोग करें, प्रोडक्शन वातावरण में उपयोग निषिद्ध है।
- fetch API
- ब्राउज़र नेटिव JavaScript HTTP अनुरोध API, Promise रिटर्न करता है, आधुनिक ब्राउज़रों द्वारा समर्थित है।
- Axios
- Promise-आधारित लोकप्रिय HTTP क्लाइंट लाइब्रेरी, ब्राउज़र और Node.js के लिए सामान्य, स्वचालित JSON सीरियलाइजेशन, इंटरसेप्टर, टाइमआउट रद्दीकरण।
- OkHttp
- Square द्वारा निर्मित Java/Android HTTP क्लाइंट लाइब्रेरी, उच्च प्रदर्शन, HTTP/2 समर्थन, कनेक्शन पूल, पारदर्शी GZIP।
- HttpClient (.NET)
- C#/.NET के लिए अनुशंसित HTTP क्लाइंट, System.Net.Http नेमस्पेस, .NET Core/.NET 5+ मानक API।
- Invoke-RestMethod
- PowerShell 3.0+ बिल्ट-इन HTTP अनुरोध cmdlet, JSON/XML प्रतिक्रिया को स्वचालित रूप से PowerShell ऑब्जेक्ट के रूप में पार्स करता है।
cURL सामान्य विकल्प और 11 लक्षित भाषा तुलना तालिका
| curl विकल्प | कार्य | JS fetch | Axios | Python requests | Go net/http | PHP cURL | Java OkHttp | C# HttpClient | PowerShell | wget |
|---|---|---|---|---|---|---|---|---|---|---|
| -X METHOD | HTTP मेथड निर्दिष्ट करना | method: 'POST' | method: 'post' | requests.request('POST') | http.NewRequest('POST') | CURLOPT_CUSTOMREQUEST | .method() | HttpMethod.Post | -Method POST | --method=POST |
| -H 'K: V' | हेडर जोड़ना | headers: {} | headers: {} | headers={} | req.Header.Set | CURLOPT_HTTPHEADER | .addHeader() | .Headers.TryAddWithoutValidation | $headers=@{} | --header= |
| -d 'data' | अनुरोध बॉडी | body: data | data: data | data=/json= | strings.NewReader | CURLOPT_POSTFIELDS | RequestBody.create | new StringContent | -Body | --body-data= |
| -u user:pass | Basic प्रमाणीकरण | Authorization हेडर | auth:{} | auth=(u,p) | req.SetBasicAuth | CURLOPT_USERPWD | Credentials.basic | new NetworkCredential | स्वचालित Header में रूपांतरण | --user/--password |
| -L | रीडायरेक्ट फॉलो करें | redirect:'follow' | maxRedirects: N | allow_redirects=True | डिफ़ॉल्ट CheckRedirect | CURLOPT_FOLLOWLOCATION | .followRedirects | AllowAutoRedirect=true | डिफ़ॉल्ट रूप से फॉलो करता है | -L |
| -k | प्रमाणपत्र सत्यापन स्किप करें | ब्राउज़र समर्थन नहीं करता | httpsAgent | verify=False | TLSClientConfig | CURLOPT_SSL_VERIFYPEER=false | कस्टम TrustManager आवश्यक | ServerCertificateCustomValidationCallback | -SkipCertificateCheck | --no-check-certificate |
| --compressed | संपीड़ित प्रतिक्रिया स्वीकार करें | डिफ़ॉल्ट रूप से समर्थित | स्वचालित डीकंप्रेस | स्वचालित डीकंप्रेस | मैन्युअल gzip आवश्यक | स्वचालित डीकंप्रेस | डिफ़ॉल्ट रूप से समर्थित | AutomaticDecompression | -TransferEncoding | डिफ़ॉल्ट रूप से डीकंप्रेस नहीं करता |
| -A UA | User-Agent | User-Agent हेडर | headers | headers={} | req.Header.Set | CURLOPT_USERAGENT | .header() | डिफ़ॉल्ट | -UserAgent | --user-agent= |
| -b cookie | Cookie | Cookie हेडर | headers/withCredentials | cookies={} | req.Header.Set | CURLOPT_COOKIE | .header() | CookieContainer | -WebSession | --header= |
| -m SECS | टाइमआउट | AbortController | timeout:N | timeout=N | http.Client.Timeout | CURLOPT_TIMEOUT | .callTimeout | client.Timeout | -TimeoutSec | --timeout= |
Content-Type सामान्य मान और curl उपयोग
| Content-Type | उपयोग | curl उदाहरण | नोट्स |
|---|---|---|---|
| application/json | JSON डेटा भेजना | curl -H 'Content-Type: application/json' -d '{"a":1}' | सबसे आम API प्रकार, -d डिफ़ॉल्ट रूप से यह हेडर सेट नहीं करता, स्पष्ट रूप से -H से निर्दिष्ट करना आवश्यक है |
| application/x-www-form-urlencoded | URL एन्कोडेड फॉर्म | curl -d 'name=a&age=1' | -d में -H नहीं जोड़ने पर डिफ़ॉल्ट रूप से यह प्रकार होता है |
| multipart/form-data | फ़ाइल अपलोड | curl -F 'file=@a.png' -F 'name=a' | -F स्वचालित रूप से यह Content-Type और boundary सेट करता है |
| text/plain | सादा पाठ | curl -H 'Content-Type: text/plain' -d 'hello' | सादा पाठ, API में कम उपयोग होता है |
| application/octet-stream | बाइनरी डेटा | curl --data-binary @file.bin | --data-binary से कच्चा बाइनरी डेटा भेजें |
| application/xml | XML डेटा | curl -H 'Content-Type: application/xml' -d '<x/>' | SOAP/पुराने एंटरप्राइज API उपयोग करते हैं |
Chrome DevTools Copy as cURL तीन प्रारूप तुलना
| प्रारूप | कोट शैली | एस्केप वर्ण | उपयोग परिदृश्य |
|---|---|---|---|
| Copy as cURL (bash) | सिंगल कोट '...' | सिंगल कोट को \' से एस्केप करें | Linux/macOS/WSL/Git Bash, इस टूल में पेस्ट करने के लिए अनुशंसित |
| Copy as cURL (cmd) | डबल कोट "..." | विशेष वर्णों को ^ से एस्केप करें | Windows cmd.exe कमांड प्रॉम्प्ट |
| Copy as cURL (PowerShell) | डबल कोट/बैकटिक | ` से एस्केप करें | Windows PowerShell 5/7 |
| Copy as fetch | JS टेम्पलेट स्ट्रिंग | एस्केप की आवश्यकता नहीं | सीधे ब्राउज़र Console में निष्पादित करें |
- Authentication Header जनरेटर
- Cache-Control पार्सर
- Content-Disposition पार्सर
- CORS हेडर जनरेटर
- CORS निरीक्षक
- CSP बिल्डर
- cURL से कोड जनरेटर
- वैश्विक DNS प्रचार जांच
- DNS लुकअप
- Forwarded हेडर पार्सर
- hreflang जनरेटर
- HSTS एनालाइजर
- HTTP कुकी पार्सर
- HTTP हेडर चेकर
- HTTP रिक्वेस्ट रनर
- HTTP स्टेटस कोड लुकअप
- आईपी लुकअप
- IPv4 कनवर्टर
- IPv4 रेंज एक्सपैंडर
- IPv6 टूलबॉक्स
- Link हेडर पार्सर
- MX लुकअप
- पोर्ट चेकर
- URL पैरामीटर बिल्डर
- Rate Limit हेडर पार्सर
- रीडायरेक्ट चेकर
- Robots.txt जेनरेटर
- robots.txt इंस्पेक्टर
- सिक्योरिटी हेडर चेकर
- security.txt जनरेटर
- Set-Cookie पार्सर
- साइट नेटवर्क ऑडिट
- Sitemap जनरेटर
- Sitemap इंस्पेक्टर
- SSL प्रमाणपत्र जांचकर्ता
- सबनेट कैलकुलेटर
- URL पार्सर
- User-Agent पार्सर
- UTM लिंक जेनरेटर
- WebSocket परीक्षक
- What Is My IP?
- WHOIS लुकअप