cURL zu Dart
Fügen Sie einen curl-Befehl ein und erhalten Sie Dart-Code, der dieselbe Anfrage mit package:http stellt.
cURL zu Dart zerlegt Ihren Befehl im Browser. Zugangsdaten aus dem Befehl verlassen Ihr Gerät nicht.
Stattdessen zu Swift wandeln
Über cURL zu Dart
Die Backend-Doku liefert einen curl-Befehl; eine Flutter-App braucht Dart. Dieser Konverter schlägt die Brücke, zerlegt die curl-Optionen so, wie curl es selbst tut, und erzeugt Code mit package:http – jenem Paket, von dem fast jedes Dart- und Flutter-Projekt ohnehin abhängt. Header landen in einer typisierten Map, ein JSON-Body wird eine Dart-Map mit jsonEncode statt eines eingefügten Strings, und Basic Auth wird mit base64Encode aus den entschlüsselten Zugangsdaten neu gebaut. Verben ohne Kurzform fallen auf http.Request zurück, sodass auch eine ungewöhnliche Methode lauffähigen Code ergibt.
Funktionen
- Zerlegt -X, -H, -d, --data-raw, --json, -u, -b, -A, -e und -G wie curl selbst
- Erzeugt Code mit package:http, dem Standard-HTTP-Client von Dart
- Header in einer typisierten Map<String, String>
- JSON-Bodys als Dart-Map, codiert mit jsonEncode
- Basic Auth mit base64Encode statt eingefügtem Base64
- Fällt für Verben ohne Kurzform auf http.Request zurück
- Warnt vor curl-Optionen ohne sinnvolle Dart-Entsprechung
So verwendest du cURL zu Dart
- Fügen Sie den curl-Befehl aus Ihrer API-Doku ein
- Lesen Sie den erzeugten Dart-Code rechts
- Prüfen Sie die Hinweise zu nicht übertragbaren Optionen
- Kopieren Sie den Code oder laden Sie ihn als .dart-Datei
Beispiel
Eingabe
curl -X PUT https://api.example.com/users/1 -H 'Authorization: Bearer TOKEN' -d '{"role":"admin"}'
Ausgabe
final response = await http.put(url, headers: headers, body: body);
Das Verb stammt aus -X, und der JSON-Body wird vor dem Codieren als Dart-Map gebaut.
Häufige Fehler & Fehlerbehebung
- Das Paket wird beim Ausführen nicht gefunden. — Tragen Sie es in pubspec.yaml unter dependencies als http ein und führen Sie dart pub get aus. Es gehört nicht zum SDK, wird aber vom Dart-Team gepflegt.
- Die Anfrage scheitert nur im Flutter-Web. — Das ist CORS, nicht der Code. Der Browser wendet die Same-Origin-Regel an, die ein curl-Befehl nie sieht, die API muss also die passenden Access-Control-Header senden.
- Ein String im Body wird seltsam interpoliert. — Das Dollarzeichen startet in Dart eine Interpolation. In den erzeugten Literalen ist es escaped, doch bei manuell eingefügten Werten escapen Sie jedes $ als \$.
- Die Anfrage klappt auf Android, aber nicht gegen einen lokalen Server im Emulator. — Ein Android-Emulator sieht das localhost des Hosts nicht – nutzen Sie 10.0.2.2. Zudem muss unverschlüsseltes HTTP in der Netzwerksicherheitskonfiguration erlaubt sein.
Häufig gestellte Fragen
- Funktioniert der erzeugte Code in einer Flutter-App?
- Ja. package:http verhält sich in Flutter und in reinem Dart gleich, der Anfragecode lässt sich also unverändert in eine Service-Klasse einfügen. Nur die Ausgabe am Ende ersetzen Sie durch das, was Ihre App tut.
- Sollte ich package:http oder Dio nutzen?
- package:http ist die schlankere offizielle Option und deckt fast jede Anfrage ab. Dio ergänzt Interceptors, Abbruch und Multipart-Komfort, und die API ist ähnlich genug für eine leichte Übertragung.
- Wie wird ein JSON-Body umgewandelt?
- Er wird geparst und als Dart-Map-Literal geschrieben, danach mit jsonEncode codiert. So bleiben verschachtelte Objekte und Arrays lesbar und Werte lassen sich direkt durch Variablen ersetzen.
- Was, wenn die Methode keine Kurzform wie http.get hat?
- Der erzeugte Code baut ein http.Request mit dem Verb als String und sendet es über send(), was PURGE, LINK oder jede andere API-Methode abdeckt.
- Wird der curl-Befehl zur Umwandlung hochgeladen?
- Nein. Zerlegung und Codeerzeugung passieren im Browser, Tokens und API-Schlüssel im Befehl bleiben also auf Ihrem Gerät.
Verwandte Tools
- cURL zu Swift — Wandelt einen curl-Befehl in Swift-Code mit URLSession.
- cURL zu Fetch — Konvertiere einen curl-Befehl in einen JavaScript-fetch()-Aufruf.
- curl zu Python — Wandle einen curl-Befehl in Python-requests-Code um.
- curl zu Go — Wandle einen curl-Befehl in Go-net/http-Code um.
- curl zu Node.js — Wandle einen curl-Befehl in Node.js-axios-Code um.
- API-Client — Sende HTTP-Anfragen, erstelle Header und Parameter und prüfe Antworten; speichert deine letzten 25.
Alle ArrayKit-Tools