ForHosting KIT · Outils pour développeurs

Créer une commande curl depuis une requête HTTP

Transformez une requête HTTP structurée en commande curl prête à être collée dans un shell compatible POSIX.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Indiquez la méthode, une URL absolue, les en-têtes et, si nécessaire, un corps texte. Le générateur protège chaque valeur dynamique, notamment les espaces, paramètres, signes et apostrophes, afin que le shell ne confonde pas les données avec sa syntaxe. Vous pouvez ainsi déboguer une API, reproduire une requête journalisée, rédiger une documentation ou transmettre une requête exacte sans assembler les options à la main.

Décrivez la requête à reproduire

Commencez par la méthode HTTP et l’URL complète. Celle-ci doit être absolue, avec un schéma tel que HTTPS et toutes les informations permettant à curl de trouver la destination sans contexte de navigateur ni adresse de base. Ajoutez les en-têtes sous forme de lignes nom-valeur ordonnées lorsque la requête exige une autorisation, une négociation de contenu, une trace, un comportement conditionnel ou un type de contenu. N’ajoutez le corps que si la requête en possède un : une chaîne vide représente volontairement un corps vide, tandis qu’un champ omis n’ajoute aucune option de données. La commande contient la méthode explicite, l’URL protégée, une option par en-tête et des données brutes si nécessaire. L’ordre des en-têtes est conservé. Le générateur n’envoie rien, ne résout aucun hôte, n’examine pas les identifiants et ne modifie pas la charge utile.

Comprenez la protection de chaque valeur

Le shell interprète une ligne de commande avant curl. Une valeur non protégée peut donc changer de sens : une esperluette peut lancer un processus, un dollar déclencher une expansion, un espace séparer des arguments et les guillemets d’un JSON devenir de la syntaxe. Le générateur place chaque argument dynamique entre apostrophes POSIX. Si la valeur contient elle-même une apostrophe, il ferme la partie protégée, insère le caractère littéral dans un fragment entre guillemets doubles, puis reprend la protection. Cette séquence inhabituelle conserve les octets exacts dans sh, bash, dash et zsh. Chaque en-tête reste un seul argument composé du nom, de deux-points, d’une espace et de la valeur. Le corps utilise l’option de données brutes, de sorte qu’une arobase initiale ne désigne pas un fichier. La sortie vise les shells POSIX ; PowerShell et l’invite de commandes Windows suivent d’autres règles.

Vérifiez le résultat avant de l’utiliser

Le générateur refuse une URL absente ou relative, car un fragment comme /users/42 est ambigu hors de l’application qui fournit l’adresse de base. Il valide aussi la méthode comme jeton HTTP, contrôle les noms d’en-tête, exige des valeurs textuelles et refuse leurs sauts de ligne. Ces contrôles empêchent une structure incorrecte de se cacher derrière une protection valide. Ils ne confirment ni la prise en charge de la méthode par le serveur, ni le bon environnement, ni la sûreté d’un secret. Relisez la commande, surtout si elle contient une autorisation, des cookies, des données personnelles ou un hôte de production. Préférez des identifiants de test temporaires et masquez les secrets avant tout partage. La génération étant déterministe, une même entrée produit toujours le même texte, adapté aux instantanés, à la documentation, aux rapports reproductibles et aux revues où chaque petite modification doit rester visible.

Reproduire une panne d’API

Convertissez méthode, URL, en-têtes et corps capturé en commande à coller pour un diagnostic local.

Rédiger une documentation exacte

Produisez des exemples curl cohérents sans protéger manuellement JSON, paramètres ou en-têtes.

Transmettre une requête à votre équipe

Fournissez une commande déterministe qui conserve la structure et facilite la revue.

Combien cela coûte-t-il ?

L’outil du navigateur est gratuit. Une exécution par API coûte $0.002 par requête.

Cet outil envoie-t-il la requête HTTP ?

Non. Il produit uniquement le texte de la ligne de commande et n’accède pas au réseau.

Pourquoi l’URL doit-elle être absolue ?

Une URL relative dépend d’une adresse de base non indiquée et ne constitue pas seule une requête curl complète.

Comment les apostrophes sont-elles traitées ?

Chaque apostrophe ferme la partie entre apostrophes, est insérée littéralement, puis la protection reprend.

Puis-je utiliser le résultat dans PowerShell ?

La sortie cible les shells compatibles POSIX ; PowerShell applique d’autres règles d’analyse et de protection.

Les secrets sont-ils retirés des en-têtes ?

Non. Les valeurs sont conservées exactement ; masquez les identifiants avant de partager la commande.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev2/curl-command-build

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev2/curl-command-build \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"POST","url":"https://api.example.com/v1/widgets?draft=true"}'
{
  "method": "POST",
  "url": "https://api.example.com/v1/widgets?draft=true"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.curl_command_build",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →