Convertisseur curl vers Rust
Convertissez une commande curl en code Rust avec reqwest instantanément dans votre navigateur. La commande reste sur votre appareil.
Votre commande curl est convertie en Rust localement dans votre navigateur et n'est jamais envoyée, mais évitez de coller de vrais jetons ou identifiants de production dans un quelconque outil.
Convertissez aussi curl en JavaScript fetch
À propos de cURL vers Rust
cURL to Rust prend une commande curl copiée depuis un terminal, les DevTools du navigateur ou une documentation d'API, et la réécrit sous forme de programme Rust asynchrone basé sur le crate reqwest. L'outil lit des options comme -X, -H, -d, --data-raw, --json, -u et -G, choisit le bon reqwest::Method, puis opte pour .json(...) pour les corps JSON valides ou .body(...) pour les charges formulaire ou brutes, afin que la requête corresponde à ce que curl enverrait réellement. Une option -u/--user devient un appel idiomatique .basic_auth(...) plutôt qu'un en-tête écrit à la main. C'est pratique lorsque vous portez un test d'API rapide vers un service Rust, un outil en ligne de commande ou un test d'intégration sans réécrire à la main le code répétitif de reqwest. Toute la conversion s'exécute dans votre navigateur : la commande curl et les jetons qu'elle contient sont traités localement sur votre appareil et ne sont jamais envoyés.
Fonctionnalités
- Génère une async fn main() reliée à #[tokio::main] et reqwest::Client
- Fait correspondre la méthode curl au reqwest::Method adéquat, y compris pour les verbes personnalisés
- Construit une HeaderMap à partir de chaque option -H/--header
- Utilise .json(&serde_json::json!(...)) pour les corps JSON valides et .body(...) pour les charges formulaire ou brutes
- Convertit -u/--user en un appel idiomatique .basic_auth(utilisateur, Some(mot_de_passe))
- Met en forme les corps JSON pour que le littéral soit facile à lire et à modifier
- Avertit des options sans équivalent dans reqwest, comme -k et les options de sortie vers un fichier
- Copiez le résultat ou téléchargez-le en tant que request.rs en un clic
Comment utiliser cURL vers Rust
- Collez votre commande curl dans le champ de commande cURL.
- Lisez le programme Rust reqwest généré dans le panneau de sortie.
- Vérifiez la bannière d'avertissement pour les options ajustées ou ignorées.
- Cliquez sur Copier, ou téléchargez le code en tant que request.rs.
Exemple
Entrée
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"Ada"}'
Sortie
use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let mut headers = HeaderMap::new();
headers.insert(HeaderName::from_bytes(b"Content-Type")?, HeaderValue::from_str("application/json")?);
let response = client
.request(reqwest::Method::POST, "https://api.example.com/users")
.headers(headers)
.json(&serde_json::json!({
"name": "Ada"
}))
.send()
.await?;
println!("{}", response.status());
let body = response.text().await?;
println!("{}", body);
Ok(())
}
Un corps JSON est transmis avec .json(...) afin que reqwest le sérialise pour vous.
Erreurs courantes et dépannage
- La sortie utilise .body(...) alors que vous attendiez .json(...). — Envoyez le corps avec --json ou ajoutez -H "Content-Type: application/json" pour que le convertisseur le reconnaisse comme JSON et bascule vers .json(...).
- La compilation échoue car le crate serde_json ou tokio est introuvable. — Ajoutez reqwest (avec la fonctionnalité json), serde_json et tokio (avec la fonctionnalité full) comme dépendances dans Cargo.toml ; le code généré dépend de ces crates.
- Un corps JSON ressort sous forme de chaîne entre guillemets plutôt qu'un littéral d'objet. — Cela se produit quand le corps n'est pas du JSON valide. Corrigez le JSON, ou conservez-le comme chaîne et envoyez-le avec .body(...).
- L'appel .basic_auth(...) est absent alors que la commande curl utilisait -u. — Vérifiez que la valeur de -u est bien utilisateur:mot_de_passe. Le convertisseur décode en interne l'en-tête Basic auth qu'il génère pour retrouver l'utilisateur et le mot de passe.
Foire aux questions
- Comment convertir une commande curl en Rust ?
- Collez la commande curl dans le champ de saisie et cURL to Rust affiche à droite un programme reqwest asynchrone que vous pouvez copier ou télécharger en tant que request.rs.
- cURL to Rust génère-t-il du code pour reqwest ou un autre client HTTP ?
- Il cible le crate reqwest, très utilisé, avec tokio comme runtime asynchrone, et produit une async fn main() avec #[tokio::main]. Ajoutez les deux crates à votre Cargo.toml avant d'exécuter le code.
- Quand le convertisseur utilise-t-il .json(...) plutôt que .body(...) ?
- Il utilise .json(&serde_json::json!(...)) quand le corps est du JSON valide (envoyé avec --json ou un Content-Type JSON), et .body(...) pour les corps encodés en formulaire ou en chaîne brute.
- Comment une valeur d'authentification basique curl -u est-elle traitée dans la sortie Rust ?
- Une valeur -u ou --user est représentée par .basic_auth(utilisateur, Some(mot_de_passe)) sur le constructeur de requête, plutôt que par un en-tête Authorization construit à la main.
- Ma commande curl est-elle envoyée quelque part quand je la convertis en Rust ?
- Non. La conversion de curl en Rust s'exécute entièrement dans votre navigateur, donc la commande et les identifiants qu'elle contient restent sur votre appareil.
- De quels crates dépend le code reqwest généré ?
- La sortie nécessite reqwest (avec la fonctionnalité json), serde_json et tokio (avec la fonctionnalité full) comme dépendances ; ajoutez-les avec cargo add avant de compiler.
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 Go — Convertissez une commande curl en code Go net/http.
- curl vers Node.js — Convertissez une commande curl en script Node.js basé sur axios.
- curl vers PHP — Convertissez une commande curl en script PHP avec l’extension cURL.
- 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.
Tous les outils ArrayKit