curl zu Rust Konverter
Wandle einen curl-Befehl sofort in deinem Browser in Rust-Code mit reqwest um. Der Befehl bleibt auf deinem Gerät.
Dein curl-Befehl wird lokal in deinem Browser nach Rust umgewandelt und nie hochgeladen, aber füge in keinem Tool echte Produktions-Tokens oder Zugangsdaten ein.
Wandle curl auch in JavaScript fetch um
Über cURL zu Rust
cURL to Rust nimmt einen curl-Befehl, den du aus einem Terminal, den Browser-DevTools oder einer API-Dokumentation kopiert hast, und schreibt ihn als asynchrones Rust-Programm auf Basis des reqwest-Crates um. Es liest Flags wie -X, -H, -d, --data-raw, --json, -u und -G, wählt die passende reqwest::Method und entscheidet sich für .json(...) bei gültigen JSON-Bodies oder .body(...) bei Formular- bzw. Rohdaten, damit die Anfrage genau dem entspricht, was curl tatsächlich senden würde. Ein -u/--user-Flag wird zu einem idiomatischen .basic_auth(...)-Aufruf statt zu einem manuellen Header. Praktisch, wenn du einen schnellen API-Test in einen Rust-Dienst, ein CLI-Tool oder einen Integrationstest überführst, ohne reqwest-Boilerplate von Hand zu schreiben. Die gesamte Umwandlung läuft in deinem Browser, sodass der curl-Befehl und darin enthaltene Tokens lokal auf deinem Gerät verarbeitet und nie hochgeladen werden.
Funktionen
- Erzeugt eine async fn main(), verdrahtet mit #[tokio::main] und reqwest::Client
- Bildet die curl-Methode auf die passende reqwest::Method ab, auch bei benutzerdefinierten Verben
- Baut aus jedem -H/--header-Flag eine HeaderMap auf
- Verwendet .json(&serde_json::json!(...)) für gültige JSON-Bodies und .body(...) für Formular- oder Rohdaten
- Wandelt -u/--user in einen idiomatischen .basic_auth(benutzer, Some(passwort))-Aufruf um
- Formatiert JSON-Bodies übersichtlich, sodass das Literal leicht lesbar und editierbar ist
- Warnt vor Flags ohne reqwest-Entsprechung, etwa -k und Optionen zur Dateiausgabe
- Ergebnis kopieren oder mit einem Klick als request.rs herunterladen
So verwendest du cURL zu Rust
- Füge deinen curl-Befehl in das Feld für den cURL-Befehl ein.
- Lies das erzeugte Rust-reqwest-Programm im Ausgabebereich.
- Prüfe den Warnhinweis auf Flags, die angepasst oder übersprungen wurden.
- Klicke auf Kopieren oder lade den Code als request.rs herunter.
Beispiel
Eingabe
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name":"Ada"}'
Ausgabe
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(())
}
Ein JSON-Body wird mit .json(...) übergeben, damit reqwest ihn für dich serialisiert.
Häufige Fehler & Fehlerbehebung
- Die Ausgabe verwendet .body(...), obwohl .json(...) erwartet wurde. — Sende den Body mit --json oder füge -H "Content-Type: application/json" hinzu, damit der Konverter ihn als JSON erkennt und auf .json(...) umschaltet.
- Das Kompilieren schlägt mit einem nicht gefundenen Crate serde_json oder tokio fehl. — Füge reqwest (mit dem json-Feature), serde_json und tokio (mit dem full-Feature) als Abhängigkeiten in der Cargo.toml hinzu; der erzeugte Code setzt diese Crates voraus.
- Ein JSON-Body erscheint als String in Anführungszeichen statt als Objekt-Literal. — Das passiert, wenn der Body kein gültiges JSON ist. Korrigiere das JSON, oder behalte es als String und sende es mit .body(...).
- Der Aufruf .basic_auth(...) fehlt, obwohl der curl-Befehl -u verwendet hat. — Stelle sicher, dass der -u-Wert genau benutzer:passwort lautet. Der Konverter dekodiert intern den erzeugten Basic-Auth-Header, um Benutzername und Passwort wiederherzustellen.
Häufig gestellte Fragen
- Wie wandle ich einen curl-Befehl in Rust um?
- Füge den curl-Befehl in das Eingabefeld ein, und cURL to Rust rendert rechts ein asynchrones reqwest-Programm, das du kopieren oder als request.rs herunterladen kannst.
- Erzeugt cURL to Rust Code für reqwest oder einen anderen HTTP-Client?
- Es setzt auf das populäre reqwest-Crate mit tokio als asynchrone Laufzeitumgebung und erzeugt eine async fn main() mit #[tokio::main]. Füge beide Crates vor dem Ausführen deiner Cargo.toml hinzu.
- Wann verwendet der Konverter .json(...) statt .body(...)?
- Er verwendet .json(&serde_json::json!(...)), wenn der Body gültiges JSON ist (gesendet mit --json oder einem JSON-Content-Type), und .body(...) für formularkodierte oder rohe Bodies.
- Wie wird ein Basic-Auth-Wert von curl -u in der Rust-Ausgabe behandelt?
- Ein -u- oder --user-Wert wird als .basic_auth(benutzer, Some(passwort)) auf dem Request-Builder dargestellt, statt als manuell zusammengesetzter Authorization-Header.
- Wird mein curl-Befehl beim Umwandeln nach Rust hochgeladen?
- Nein. Die Umwandlung von curl zu Rust läuft vollständig in deinem Browser, sodass der Befehl und enthaltene Zugangsdaten auf deinem Gerät bleiben.
- Von welchen Crates hängt der erzeugte reqwest-Code ab?
- Die Ausgabe erwartet reqwest (mit dem json-Feature), serde_json und tokio (mit dem full-Feature) als Abhängigkeiten; füge sie vor dem Kompilieren mit cargo add hinzu.
Verwandte Tools
- cURL zu Fetch — Konvertiere einen curl-Befehl in einen JavaScript-fetch()-Aufruf.
- curl zu Python — Wandle einen curl-Befehl in Python-requests-Code um.
- curl zu Go — Wandle einen curl-Befehl in Go-net/http-Code um.
- curl zu Node.js — Wandle einen curl-Befehl in Node.js-axios-Code um.
- curl zu PHP — Wandle einen curl-Befehl in PHP-cURL-Code um.
- API-Client — Sende HTTP-Anfragen, erstelle Header und Parameter und prüfe Antworten; speichert deine letzten 25.
Alle ArrayKit-Tools