cURL से Swift

curl कमांड चिपकाइए और वही अनुरोध करने वाला Swift URLSession कोड पाइए।

cURL से Swift आपका कमांड ब्राउज़र में ही पार्स करता है। टोकन और प्रमाण-पत्र आपके डिवाइस से बाहर नहीं जाते।

निर्माण और रखरखाव: Udit Agarwal

API क्लाइंट आज़माइए

cURL से Swift के बारे में

API का दस्तावेज़ curl बोलता है और iOS ऐप URLSession, और हाथ से अनुवाद करना वह दोहराव वाला काम है जिसमें छोटी ग़लतियाँ आसानी से हो जाती हैं — एक हेडर छूट गया, बॉडी स्ट्रिंग रह गई जबकि JSON चाहिए था, या ऑथ फ़्लैग चुपचाप छूट गया। यह कन्वर्टर curl कमांड को वैसे ही पढ़ता है जैसे curl ख़ुद पढ़ता है और सिर्फ़ Foundation पर टिका Swift देता है। JSON बॉडी अपारदर्शी स्ट्रिंग के बजाय Swift शब्दकोश बनती है।

विशेषताएँ

  • -X, -H, -d, --data-raw, --json, -u, -b, -A, -e और -G को curl जैसा पढ़ता है
  • ऐसा URLSession कोड जिसे Foundation के अलावा कुछ नहीं चाहिए
  • JSON बॉडी Swift शब्दकोश में, JSONSerialization से एन्कोड
  • बेसिक ऑथ प्रमाण-पत्रों से दोबारा बनता है, base64EncodedString के साथ
  • बॉडी होने पर मेथड ख़ुद तय होता है, या -X से आता है
  • उन curl फ़्लैग की चेतावनी जिनका Swift में ठीक जोड़ नहीं
  • कोड कॉपी कीजिए या .swift फ़ाइल सहेजिए

cURL से Swift का उपयोग कैसे करें

  1. curl कमांड अपने फ़्लैग और बॉडी के साथ चिपकाइए
  2. दाईं ओर बना हुआ Swift पढ़िए
  3. चेतावनियाँ देखिए कि कौन-सा फ़्लैग अनूदित नहीं हो पाया
  4. कोड कॉपी कीजिए या .swift फ़ाइल के रूप में सहेजिए

उदाहरण

इनपुट

curl https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'

आउटपुट

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

मेथड बॉडी देखकर तय होता है, ठीक वैसे जैसे curl तय करता।

सामान्य त्रुटियाँ और समस्या निवारण

  • curl में अनुरोध चलता है पर ऐप में विफल होता है। — App Transport Security देखिए। iOS डिफ़ॉल्ट पर सादा HTTP रोकता है, इसलिए http:// एंडपॉइंट के लिए Info.plist में छूट या https URL चाहिए।
  • कोड बनता है पर कुछ छापता नहीं। — URLSession अतुल्यकालिक है। कमांड-लाइन उपकरण में कंप्लीशन हैंडलर चलने से पहले प्रक्रिया ख़त्म हो जाती है।
  • -k या --insecure फ़्लैग अनदेखा हो गया। — जानबूझकर। प्रमाणपत्र जाँच छोड़ने के लिए URLSessionDelegate चाहिए और यह फ़ैसला साफ़ तरीक़े से लेना बेहतर है।
  • बॉडी के विशेष अक्षर ग़लत आ रहे हैं। — मूल कमांड की उद्धरण-व्यवस्था देखिए। दोहरे उद्धरण वाली बॉडी पहले ही आपके शेल से गुज़र चुकी होती है।

अक्सर पूछे जाने वाले प्रश्न

क्या बना हुआ Swift iOS, macOS और Linux पर चलेगा?
हाँ। वह Foundation का URLSession इस्तेमाल करता है, जो Apple प्लेटफ़ॉर्म पर और Linux में swift-corelibs-foundation में उपलब्ध है।
क्या कंप्लीशन हैंडलर के बजाय async/await कोड मिल सकता है?
बना हुआ रूप कंप्लीशन हैंडलर वाली डेटा टास्क इस्तेमाल करता है, जो हर जगह चलती है। उसे एक पंक्ति में बदला जा सकता है।
JSON बॉडी कैसे संभाली जाती है?
उसे पार्स करके Swift [String: Any] शब्दकोश बनाया जाता है, फिर JSONSerialization से एन्कोड।
-b फ़्लैग की कुकीज़ का क्या होता है?
वे अनुरोध पर Cookie हेडर बन जाती हैं। ध्यान रहे कि URLSession का अपना कुकी भंडार होता है।
क्या Swift में बदलते समय curl कमांड अपलोड होता है?
नहीं। कमांड आपके ब्राउज़र में ही पार्स होता है और कोड वहीं बनता है — दस्तावेज़ों और लॉग के curl कमांड में अक्सर असली API कुंजी होती है।

संबंधित टूल

  • cURL से Fetch — curl कमांड को JavaScript fetch() कॉल में कन्वर्ट करें।
  • curl to Python Converter — एक curl कमांड को Python requests कोड में बदलें।
  • curl to Node.js Converter — एक curl कमांड को Node.js axios कोड में बदलें।
  • cURL से Java — curl कमांड को HttpClient वाले Java कोड में बदलें।
  • cURL से Dart — curl कमांड को package:http वाले Dart कोड में बदलिए।
  • API क्लाइंट — HTTP अनुरोध भेजें, हेडर और पैरामीटर बनाएँ और रिस्पॉन्स का निरीक्षण करें; अपने पिछले 25 सहेजें।

API टूल के और टूल

  • cURL से Dart — curl कमांड को package:http वाले Dart कोड में बदलिए।
  • cURL से Fetch — curl कमांड को JavaScript fetch() कॉल में कन्वर्ट करें।
  • URL पार्सर — URL को उसके भागों में तोड़ें और क्वेरी पैरामीटर सूचीबद्ध करें।
  • API क्लाइंट — HTTP अनुरोध भेजें, हेडर और पैरामीटर बनाएँ और रिस्पॉन्स का निरीक्षण करें; अपने पिछले 25 सहेजें।
  • URL बिल्डर और UTM जनरेटर — UTM पैरामीटर के साथ एन्कोडेड उत्पादन URL बनाएं और सत्यापित करें।
  • OpenAI API टेस्टर — OpenAI Chat Completions API रिक्वेस्ट बनाएँ, चलाएँ और cURL, Python तथा JavaScript के रूप में कॉपी करें।
  • Anthropic Claude API टेस्टर — Anthropic Claude Messages API रिक्वेस्ट बनाएँ, चलाएँ और cURL, Python तथा JavaScript के रूप में कॉपी करें।
  • Google Gemini API टेस्टर — Google Gemini generateContent API रिक्वेस्ट बनाएँ, चलाएँ और cURL, Python तथा JavaScript के रूप में कॉपी करें।
  • Replicate API टेस्टर — Replicate प्रेडिक्शन API रिक्वेस्ट बनाएँ, चलाएँ और cURL, Python तथा JavaScript के रूप में कॉपी करें।
  • Hugging Face API टेस्टर — Hugging Face Inference API रिक्वेस्ट बनाएँ, चलाएँ और cURL, Python तथा JavaScript के रूप में कॉपी करें।
  • curl to Python Converter — एक curl कमांड को Python requests कोड में बदलें।
  • curl to Go Converter — एक curl कमांड को Go net/http कोड में बदलें।

API टूल के सभी टूल देखें (24) · सभी टूल