cURL से Dart
curl कमांड चिपकाइए और package:http से वही अनुरोध करने वाला Dart कोड पाइए।
cURL से Dart आपका कमांड ब्राउज़र में ही पार्स करता है। प्रमाण-पत्र आपके डिवाइस से बाहर नहीं जाते।
Swift में बदलिए
cURL से Dart के बारे में
बैकएंड का दस्तावेज़ curl कमांड देता है; Flutter ऐप को Dart चाहिए। यह कन्वर्टर दोनों को जोड़ता है — curl के फ़्लैग वैसे ही पढ़ता है जैसे curl ख़ुद, और package:http पर टिका कोड देता है, वही पैकेज जिस पर लगभग हर Dart या Flutter परियोजना पहले से निर्भर है। हेडर एक प्रकारित मानचित्र में आते हैं, JSON बॉडी Dart मानचित्र बनती है जो jsonEncode से गुज़रती है, और बेसिक ऑथ base64Encode से दोबारा बनती है।
विशेषताएँ
- -X, -H, -d, --data-raw, --json, -u, -b, -A, -e और -G को curl जैसा पढ़ता है
- package:http पर बना कोड, Dart का मानक HTTP क्लाइंट
- हेडर प्रकारित Map<String, String> में
- JSON बॉडी Dart मानचित्र में, jsonEncode से एन्कोड
- बेसिक ऑथ base64Encode से, चिपकाए Base64 से नहीं
- शॉर्टकट न होने पर http.Request पर लौटता है
- उन curl फ़्लैग की चेतावनी जिनका Dart में ठीक जोड़ नहीं
cURL से Dart का उपयोग कैसे करें
- अपने API दस्तावेज़ का curl कमांड चिपकाइए
- दाईं ओर बना हुआ Dart पढ़िए
- उन फ़्लैग की चेतावनी देखिए जो ले नहीं जाए जा सके
- कोड कॉपी कीजिए या .dart फ़ाइल सहेजिए
उदाहरण
इनपुट
curl -X PUT https://api.example.com/users/1 -H 'Authorization: Bearer TOKEN' -d '{"role":"admin"}'
आउटपुट
final response = await http.put(url, headers: headers, body: body);
क्रिया -X से आती है, और JSON बॉडी एन्कोड होने से पहले Dart मानचित्र की तरह बनती है।
सामान्य त्रुटियाँ और समस्या निवारण
- फ़ाइल चलाते समय पैकेज नहीं मिलता। — उसे pubspec.yaml में dependencies के अंदर http लिखिए और dart pub get चलाइए।
- अनुरोध सिर्फ़ Flutter web पर विफल होता है। — यह CORS है, कोड नहीं। ब्राउज़र वही समान-मूल नियम लगाता है जिसे curl कभी नहीं देखता।
- बॉडी की कोई स्ट्रिंग अजीब तरह से फैल रही है। — Dart में डॉलर चिह्न प्रक्षेप शुरू करता है। बने हुए शाब्दिक में वह escape है, पर हाथ से चिपकाए मान में हर $ को \$ लिखिए।
- Android पर अनुरोध चलता है पर एमुलेटर के स्थानीय सर्वर पर नहीं। — Android एमुलेटर होस्ट मशीन का localhost नहीं देखता — 10.0.2.2 लीजिए।
अक्सर पूछे जाने वाले प्रश्न
- क्या बना हुआ कोड Flutter ऐप में चलेगा?
- हाँ। package:http Flutter और सादे Dart दोनों में एक जैसा चलता है, इसलिए अनुरोध का कोड सीधे सर्विस क्लास में रखा जा सकता है।
- package:http लें या Dio?
- package:http हल्का और आधिकारिक विकल्प है और लगभग हर अनुरोध संभाल लेता है। Dio इंटरसेप्टर, रद्दीकरण और मल्टीपार्ट सुविधा जोड़ता है।
- JSON बॉडी कैसे बदलती है?
- उसे पार्स करके Dart मानचित्र शाब्दिक लिखा जाता है, फिर jsonEncode से एन्कोड।
- अगर मेथड के लिए http.get जैसा सहायक न हो तो?
- बना हुआ कोड क्रिया को स्ट्रिंग की तरह लेकर http.Request बनाता है और send() से भेजता है।
- क्या बदलने के लिए curl कमांड अपलोड होता है?
- नहीं। पार्सिंग और कोड निर्माण आपके ब्राउज़र में होते हैं।
संबंधित टूल
सभी ArrayKit टूल