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

So verwendest du cURL zu Rust

  1. Füge deinen curl-Befehl in das Feld für den cURL-Befehl ein.
  2. Lies das erzeugte Rust-reqwest-Programm im Ausgabebereich.
  3. Prüfe den Warnhinweis auf Flags, die angepasst oder übersprungen wurden.
  4. 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

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

Alle ArrayKit-Tools