cURL zu Swift
Fügen Sie einen curl-Befehl ein und erhalten Sie Swift-Code, der dieselbe Anfrage mit URLSession stellt.
cURL zu Swift zerlegt Ihren Befehl im Browser. Tokens und Zugangsdaten verlassen Ihr Gerät nicht.
API-Client ausprobieren
Über cURL zu Swift
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
Beispiel
Eingabe
curl https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'
Ausgabe
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
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.
Alle ArrayKit-Tools