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.

Entwickelt und gepflegt von Udit Agarwal

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

  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

  • 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.

Weitere API-Tools-Tools

  • HAR zu cURL — Wandelt HAR-Requests in lauffähige cURL-Befehle um.
  • Postman zu cURL — Wandelt einen Postman-Export in ausführbare cURL-Befehle um.
  • cURL zu C# — Wandelt einen curl-Befehl in C#-Code mit HttpClient um.
  • cURL zu Java — Wandelt einen curl-Befehl in Java-Code mit HttpClient um.
  • cURL zu Ruby — Einen curl-Befehl in Ruby-Code mit Net::HTTP umwandeln.
  • cURL zu PowerShell — Einen curl-Befehl in PowerShell mit Invoke-RestMethod umwandeln.
  • cURL zu Swift — Wandelt einen curl-Befehl in Swift-Code mit URLSession.
  • cURL zu Dart — Wandelt einen curl-Befehl in Dart-Code mit package:http.
  • cURL zu Fetch — Konvertiere einen curl-Befehl in einen JavaScript-fetch()-Aufruf.
  • URL-Parser — Zerlege eine URL in ihre Bestandteile und liste die Query-Parameter auf.
  • API-Client — Sende HTTP-Anfragen, erstelle Header und Parameter und prüfe Antworten; speichert deine letzten 25.
  • URL-Builder & UTM-Generator — Erstellen und validieren Sie codierte Produktions-URLs mit UTM-Parametern.

Alle API-Tools-Tools ansehen (24) · Alle Tools