API-Dokumentation spricht curl und iOS-Apps sprechen URLSession, und die Übersetzung von Hand ist Fleißarbeit, die kleine Fehler einlädt: ein vergessener Header, ein Body als String statt als JSON, eine still übergangene Authentifizierungsoption. Dieser Konverter zerlegt den curl-Befehl so, wie curl es selbst tut, samt der Optionen, die die Methode ändern oder Zugangsdaten in einen Header falten, und erzeugt Swift, das nur Foundation braucht. Ein JSON-Body wird ein Swift-Dictionary, das durch JSONSerialization läuft, statt eines undurchsichtigen Strings – lesbar und leicht zu ändern.
Funktionen
Zerlegt -X, -H, -d, --data-raw, --json, -u, -b, -A, -e und -G wie curl selbst
Erzeugt URLSession-Code, der nichts außer Foundation braucht
JSON-Bodys als Swift-Dictionary, codiert mit JSONSerialization
Basic Auth aus den Zugangsdaten neu aufgebaut, mit base64EncodedString
Methode aus dem Vorhandensein eines Bodys abgeleitet oder aus -X übernommen
Warnt vor curl-Optionen ohne sinnvolle Swift-Entsprechung
Code kopieren oder als .swift-Datei laden
So verwendest du cURL zu Swift
Fügen Sie den curl-Befehl samt Optionen und Body ein
Lesen Sie den erzeugten Swift-Code rechts
Prüfen Sie die Hinweise auf nicht übersetzbare Optionen
Kopieren Sie den Code oder laden Sie ihn als .swift-Datei
Die Methode ergibt sich aus dem Body – genau so, wie curl sie ableiten würde.
Häufige Fehler & Fehlerbehebung
Die Anfrage klappt in curl, scheitert aber in der App. — Prüfen Sie App Transport Security. iOS blockiert unverschlüsseltes HTTP standardmäßig, ein http://-Endpunkt braucht also eine Ausnahme in der Info.plist oder eine https-URL.
Der Code kompiliert, gibt aber nichts aus. — URLSession ist asynchron. In einem Kommandozeilenwerkzeug endet der Prozess, bevor der Completion-Handler läuft: Run Loop am Leben halten oder auf die async/await-Form von data(for:) wechseln.
Eine Option -k oder --insecure wurde ignoriert. — Absichtlich. Das Überspringen der Zertifikatsprüfung braucht einen URLSessionDelegate und ist eine bewusst zu treffende Entscheidung.
Sonderzeichen im Body kommen falsch an. — Prüfen Sie die Anführungszeichen im Originalbefehl. Ein Body in doppelten Anführungszeichen ist bereits durch Ihre Shell gelaufen.
Häufig gestellte Fragen
Läuft der erzeugte Swift-Code unter iOS, macOS und Linux?
Ja. Er nutzt URLSession aus Foundation, verfügbar auf Apple-Plattformen und in swift-corelibs-foundation unter Linux, dieselbe Datei kompiliert also auch serverseitig.
Kann ich Code mit async/await statt Completion-Handler bekommen?
Die erzeugte Form nutzt eine Data Task mit Completion-Handler, die überall funktioniert. Der Wechsel zu `let (data, response) = try await URLSession.shared.data(for: request)` ist eine Zeile.
Wie wird ein JSON-Body behandelt?
Er wird geparst und als Swift-Dictionary [String: Any] geschrieben, dann mit JSONSerialization codiert. So bleibt die Nutzlast lesbar und Werte lassen sich ohne escapte Strings ändern.
Was passiert mit Cookies aus einer -b-Option?
Sie werden zu einem Cookie-Header. Beachten Sie, dass URLSession eigenen Cookie-Speicher hat, der ohne andere Konfiguration ergänzen oder überschreiben kann.
Wird mein curl-Befehl beim Umwandeln nach Swift hochgeladen?
Nein. Der Befehl wird im Browser zerlegt und der Code dort erzeugt – wichtig, weil curl-Befehle aus Doku und Logs häufig echte API-Schlüssel enthalten.
Verwandte Tools
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 Node.js — Wandle einen curl-Befehl in Node.js-axios-Code um.
cURL zu Java — Wandelt einen curl-Befehl in Java-Code mit HttpClient um.
cURL zu Dart — Wandelt einen curl-Befehl in Dart-Code mit package:http.
API-Client — Sende HTTP-Anfragen, erstelle Header und Parameter und prüfe Antworten; speichert deine letzten 25.
Weitere API-Tools-Tools
cURL zu Dart — Wandelt einen curl-Befehl in Dart-Code mit package:http.
cURL zu Fetch — Konvertiere einen curl-Befehl in einen JavaScript-fetch()-Aufruf.
URL-Parser — Zerlege eine URL in ihre Bestandteile und liste die Query-Parameter auf.
API-Client — Sende HTTP-Anfragen, erstelle Header und Parameter und prüfe Antworten; speichert deine letzten 25.