Convertir curl en Go
Convertissez des commandes curl en code Go à l'aide du package standard net/http. curl2code s'exécute entièrement dans votre navigateur via WebAssembly — vos données restent privées. Si vous préférez un langage de plus haut niveau, essayez notre convertisseur curl vers Python. Pour la programmation système, voir curl vers Rust. Vous trouverez ci-dessous des exemples Go prêts à l'emploi.
Comment copier curl depuis votre navigateur
- 1
Ouvrir les DevTools
Appuyez sur F12 ou Ctrl+Shift+I pour ouvrir les outils de développement de votre navigateur.
- 2
Aller dans l'onglet Network
Cliquez sur l'onglet Network et effectuez l'action qui déclenche la requête HTTP.
- 3
Copier comme cURL
Faites un clic droit sur la requête → Copy → Copy as cURL. Collez-la ensuite ci-dessus.
Foire Aux Questions
Qu'est-ce que Go net/http ?
Le package net/http de Go est un client et serveur HTTP de qualité production inclus dans la bibliothèque standard. Il ne nécessite aucune dépendance externe, prend en charge HTTP/2 par défaut et fournit le pooling de connexions, les délais d'attente et la configuration TLS nativement. C'est la seule bibliothèque que curl2code utilise pour Go — aucun package tiers n'est nécessaire.
net/http vs clients HTTP Go tiers — lequel utiliser ?
Le net/http de Go est assez puissant pour la plupart des cas d'utilisation — contrairement à de nombreux langages, la bibliothèque standard est prête pour la production. Les options tierces comme resty ajoutent de la commodité (tentatives automatiques, chaînage) mais ajoutent des dépendances. Pour une approche similaire "tout inclus", consultez notre convertisseur curl vers Rust (reqwest) ou curl vers Python.
Comment gérer l'authentification en Go ?
Définissez l'en-tête Authorization avec req.Header.Set("Authorization", "Bearer "+token). Pour l'authentification Basic, utilisez req.SetBasicAuth(user, pass) qui définit l'en-tête automatiquement. curl2code détecte -u et -H 'Authorization: ...' et génère le code Go correct.
Comment envoyer des données de formulaire multipart en Go ?
Utilisez le package mime/multipart : créez un writer avec multipart.NewWriter(body), ajoutez des champs avec CreateFormField et des fichiers avec CreateFormFile. Définissez le Content-Type sur writer.FormDataContentType(). curl2code gère toutes les conversions de drapeaux -F.
Comment gérer les erreurs HTTP en Go ?
Go utilise des retours d'erreur explicites : vérifiez toujours if err != nil après http.Do(req). Vérifiez ensuite resp.StatusCode pour les erreurs au niveau HTTP. Utilisez toujours defer resp.Body.Close() pour éviter les fuites de ressources. Cette gestion explicite des erreurs est un modèle central de Go — pas d'exceptions, pas de try/catch.
Comment effectuer des requêtes HTTP concurrentes en Go ?
Utilisez des goroutines avec sync.WaitGroup ou des canaux (channels). Lancez chaque requête dans une goroutine avec go func() { ... }(). Pour une concurrence limitée, utilisez un canal sémaphore. Les goroutines de Go sont légères — vous pouvez facilement gérer des milliers de requêtes concurrentes. Pour des modèles de concurrence similaires, voir curl vers Rust.
Comment définir des délais d'attente dans le client HTTP Go ?
Définissez client.Timeout pour l'échéance globale de la requête. Pour un contrôle précis, utilisez context.WithTimeout ou context.WithDeadline et passez le contexte à http.NewRequestWithContext. L'option --connect-timeout de curl correspond au délai Transport.DialContext, et --max-time correspond à client.Timeout.
Comment configurer un proxy en Go ?
Définissez Transport.Proxy sur http.ProxyURL(proxyUrl) sur un http.Transport personnalisé. Go respecte également les variables d'environnement HTTP_PROXY et HTTPS_PROXY par défaut via http.ProxyFromEnvironment. curl2code convertit les drapeaux -x et --proxy vers la configuration de proxy Go appropriée.
Comment envoyer une requête POST avec un corps JSON en Go ?
Convertissez une commande curl POST comme curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL en Go en utilisant curl2code. Le code généré utilise http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code détecte automatiquement les drapeaux -d/--data avec du contenu JSON et définit l'en-tête Content-Type approprié dans le code net/http.
Comment ajouter une autorisation par jeton Bearer en Go ?
Passez curl -H "Authorization: Bearer YOUR_TOKEN" URL à curl2code et il générera le code net/http avec l'en-tête d'authentification : req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code détecte les jetons Bearer à partir des drapeaux -H "Authorization: Bearer ..." et --oauth2-bearer. Pour le Basic auth, utilisez -u user:pass.
Comment définir l''en-tête Content-Type en Go ?
curl2code convertit curl -H "Content-Type: application/json" URL en code net/http avec l'en-tête approprié : req.Header.Set("Content-Type", "application/json"). Pour les données -d, curl utilise par défaut application/x-www-form-urlencoded ; pour les téléchargements de formulaires -F, il utilise multipart/form-data. curl2code associe chacun à l'API net/http correcte.
Liens utiles
Guides curl
Codes d'erreur curl
Recherchez n'importe quel code de sortie curl — causes, corrections et astuces de débogage.
Télécharger des fichiers avec curl
Enregistrez des fichiers avec -o, -O, suivez les redirections, reprenez les téléchargements et plus encore.
SSL, TLS et proxy
Configurez les certificats, les versions TLS, les proxys HTTP/SOCKS et le DNS personnalisé.