cURL vers Swift

Collez une commande curl et obtenez du code Swift qui fait la même requête avec URLSession.

cURL vers Swift analyse votre commande dans le navigateur. Jetons et identifiants ne quittent pas votre appareil.

Conçu et maintenu par Udit Agarwal

Essayer le client d’API

À propos de cURL vers Swift

La documentation d’API parle curl et les applications iOS parlent URLSession : traduire à la main est un travail répétitif qui invite aux petites erreurs — un en-tête oublié, un corps laissé en chaîne alors qu’il devrait être du JSON, une option d’authentification silencieusement ignorée. Ce convertisseur analyse la commande curl comme curl lui-même, y compris les options qui changent la méthode ou replient les identifiants dans un en-tête, et produit du Swift qui n’utilise que Foundation. Un corps JSON devient un dictionnaire Swift passé à JSONSerialization plutôt qu’une chaîne opaque.

Fonctionnalités

  • Analyse -X, -H, -d, --data-raw, --json, -u, -b, -A, -e et -G comme curl
  • Produit du code URLSession qui ne demande rien de plus que Foundation
  • Corps JSON rendus en dictionnaire Swift et encodés avec JSONSerialization
  • Authentification basique reconstruite depuis les identifiants, avec base64EncodedString
  • Méthode déduite de la présence d’un corps, ou reprise de -X
  • Signale les options curl sans équivalent Swift raisonnable
  • Copiez le code ou téléchargez-le en fichier .swift

Comment utiliser cURL vers Swift

  1. Collez la commande curl, avec ses options et son corps
  2. Lisez le Swift généré à droite
  3. Vérifiez les avertissements sur les options non traduisibles
  4. Copiez le code ou téléchargez-le en .swift

Exemple

Entrée

curl https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'

Sortie

var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

La méthode se déduit du corps, exactement comme curl la déduirait.

Erreurs courantes et dépannage

  • La requête marche en curl mais échoue dans l’application. — Vérifiez App Transport Security. iOS bloque le HTTP en clair par défaut : un point de terminaison http:// nécessite une exception dans l’Info.plist ou une URL https.
  • Le code compile mais n’affiche rien. — URLSession est asynchrone. Dans un outil en ligne de commande le processus se termine avant l’exécution du bloc de complétion : gardez la boucle d’exécution active ou passez à la forme async/await.
  • Une option -k ou --insecure a été ignorée. — Volontairement. Contourner la validation du certificat exige un URLSessionDelegate et mérite d’être décidé explicitement.
  • Des caractères spéciaux du corps sont mal rendus. — Vérifiez les guillemets de la commande d’origine. Un corps entre guillemets doubles est déjà passé par votre shell.

Foire aux questions

Le Swift produit fonctionne-t-il sur iOS, macOS et Linux ?
Oui. Il emploie URLSession de Foundation, disponible sur les plateformes Apple et dans swift-corelibs-foundation sous Linux, le même fichier compile donc côté serveur.
Puis-je obtenir du code async/await plutôt qu’un bloc de complétion ?
La forme produite utilise une data task avec bloc, qui fonctionne partout. La remplacer par `let (data, response) = try await URLSession.shared.data(for: request)` tient en une ligne.
Comment un corps JSON est-il traité ?
Il est analysé puis rendu en dictionnaire [String: Any], avant d’être encodé par JSONSerialization. La charge utile reste lisible et modifiable sans toucher à une chaîne échappée.
Qu’advient-il des cookies d’une option -b ?
Ils deviennent un en-tête Cookie. Notez qu’URLSession possède son propre stockage de cookies, susceptible d’ajouter ou de remplacer sans configuration contraire.
Ma commande curl est-elle téléversée lors de la conversion vers Swift ?
Non. La commande est analysée et le code produit dans votre navigateur, ce qui compte car les commandes curl de documentation contiennent souvent de vraies clés d’API.

Outils associés

  • cURL vers Fetch — Convertit une commande curl en un appel fetch() JavaScript.
  • curl vers Python — Convertissez une commande curl en script Python requests.
  • curl vers Node.js — Convertissez une commande curl en script Node.js basé sur axios.
  • cURL vers Java — Convertit une commande curl en code Java avec HttpClient.
  • cURL vers Dart — Convertit une commande curl en code Dart avec package:http.
  • Client API — Envoyez des requêtes HTTP, créez en-têtes et paramètres et inspectez les réponses ; conserve vos 25 dernières.

Plus d’outils Outils API

  • cURL vers Dart — Convertit une commande curl en code Dart avec package:http.
  • cURL vers Fetch — Convertit une commande curl en un appel fetch() JavaScript.
  • Analyseur d’URL — Décompose une URL en ses parties et liste les paramètres de requête.
  • Client API — Envoyez des requêtes HTTP, créez en-têtes et paramètres et inspectez les réponses ; conserve vos 25 dernières.
  • Générateur d'URL et UTM — Construisez et validez des URL de production encodées avec des paramètres UTM.
  • Testeur d’API OpenAI — Créez, exécutez et copiez des requêtes à l’API Chat Completions d’OpenAI en cURL, Python et JavaScript.
  • Testeur d’API Anthropic Claude — Créez, exécutez et copiez des requêtes à l’API Messages d’Anthropic Claude en cURL, Python et JavaScript.
  • Testeur d’API Google Gemini — Créez, exécutez et copiez des requêtes generateContent de Google Gemini en cURL, Python et JavaScript.
  • Testeur d’API Replicate — Créez, exécutez et copiez des requêtes de prédiction de l’API Replicate en cURL, Python et JavaScript.
  • Testeur d’API Hugging Face — Créez, exécutez et copiez des requêtes à l’API d’inférence de Hugging Face en cURL, Python et JavaScript.
  • curl vers Python — Convertissez une commande curl en script Python requests.
  • curl vers Go — Convertissez une commande curl en code Go net/http.

Voir tous les outils Outils API (24) · Tous les outils