Convertir curl en Rust
curl2code convertit les commandes curl en code Rust à l'aide de la crate reqwest. La conversion s'exécute dans votre navigateur via WebAssembly pour une confidentialité totale. Pour Go, consultez notre convertisseur curl vers Go. Pour C, voir curl vers C. Vous trouverez ci-dessous des exemples Rust pratiques avec async/await.
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 Rust reqwest ?
reqwest est le client HTTP le plus populaire pour Rust, construit sur hyper. Il fournit des API bloquantes et asynchrones, la sérialisation JSON automatique via serde, le TLS, la gestion des cookies et le support proxy. Ajoutez-le avec cargo add reqwest --features json. C'est la bibliothèque par défaut utilisée par curl2code pour les conversions Rust.
reqwest vs hyper vs ureq — lequel dois-je utiliser ?
reqwest est le choix privilégié pour la plupart des projets — de haut niveau, riche en fonctionnalités et asynchrone. hyper est de plus bas niveau et offre un contrôle maximal (reqwest est construit dessus). ureq est un client minimal, uniquement bloquant, sans dépendance à un runtime asynchrone. Pour une approche de type bibliothèque standard, voir curl vers Go ou curl vers C.
Comment gérer l'authentification en Rust ?
Pour Bearer : client.get(url).bearer_auth(token). Pour Basic : client.get(url).basic_auth(user, Some(pass)). Ou définissez les en-têtes manuellement avec .header("Authorization", value). curl2code convertit les drapeaux -u et -H 'Authorization: ...' vers les méthodes reqwest appropriées.
Comment envoyer des données de formulaire multipart en Rust ?
Utilisez reqwest::multipart::Form : créez avec Form::new(), ajoutez des champs texte avec .text("key", "value") et des fichiers avec .file("field", path).await?. Passez à client.post(url).multipart(form). curl2code gère les drapeaux -F pour le multipart reqwest.
Comment gérer les erreurs HTTP en Rust ?
reqwest renvoie un Result contenant une Response en cas de succès ou un reqwest::Error en cas d'échec — utilisez l'opérateur ? pour la propagation. Vérifiez response.status().is_success() ou appelez response.error_for_status()? qui convertit les codes non-2xx en erreurs. Le système de types de Rust garantit que tous les chemins d'erreur sont explicitement gérés à la compilation.
De quel runtime asynchrone reqwest a-t-il besoin ?
reqwest nécessite le runtime tokio par défaut. Annotez votre fonction main avec #[tokio::main]. Pour une utilisation bloquante sans runtime asynchrone, activez la fonctionnalité blocking et utilisez reqwest::blocking::Client. curl2code génère du code asynchrone avec tokio par défaut. Pour un autre écosystème asynchrone, voir curl vers Go (goroutines).
Comment définir des délais d'attente dans Rust reqwest ?
Définissez sur le client : Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. Par requête : client.get(url).timeout(Duration::from_secs(5)). Ceux-ci correspondent aux drapeaux --max-time et --connect-timeout de curl.
Comment utiliser un proxy avec reqwest ?
Définissez un proxy sur le constructeur du client : Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. Prend en charge les proxys HTTP, HTTPS et SOCKS5. reqwest respecte également les variables d'environnement HTTP_PROXY et HTTPS_PROXY par défaut. curl2code convertit les drapeaux -x vers la configuration du proxy.
Comment envoyer une requête POST avec un corps JSON en Rust ?
Convertissez une commande curl POST comme curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL en Rust en utilisant curl2code. Le code généré utilise client.post(url).json(&data).send().await?. 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 reqwest.
Comment ajouter une autorisation par jeton Bearer en Rust ?
Passez curl -H "Authorization: Bearer YOUR_TOKEN" URL à curl2code et il générera le code reqwest avec l'en-tête d'authentification : .bearer_auth("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 Rust ?
curl2code convertit curl -H "Content-Type: application/json" URL en code reqwest avec l'en-tête approprié : .header("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 reqwest 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é.