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.

Entwickelt und gepflegt von Udit Agarwal

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

  1. Fügen Sie den curl-Befehl samt Optionen und Body ein
  2. Lesen Sie den erzeugten Swift-Code rechts
  3. Prüfen Sie die Hinweise auf nicht übersetzbare Optionen
  4. 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.

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.
  • URL-Builder & UTM-Generator — Erstellen und validieren Sie codierte Produktions-URLs mit UTM-Parametern.
  • OpenAI-API-Tester — Erstelle, sende und kopiere Anfragen an die OpenAI-Chat-Completions-API als cURL, Python und JavaScript.
  • Anthropic-Claude-API-Tester — Erstelle, sende und kopiere Anfragen an die Anthropic-Claude-Messages-API als cURL, Python und JavaScript.
  • Google-Gemini-API-Tester — Erstelle, sende und kopiere generateContent-Anfragen von Google Gemini als cURL, Python und JavaScript.
  • Replicate-API-Tester — Erstelle, sende und kopiere Vorhersage-Anfragen der Replicate-API als cURL, Python und JavaScript.
  • Hugging-Face-API-Tester — Erstelle, sende und kopiere Anfragen an die Hugging-Face-Inference-API als cURL, Python und JavaScript.
  • 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.

Alle API-Tools-Tools ansehen (24) · Alle Tools