cURL to Rust
Convierte un comando curl a Rust reqwest
Acerca de cURL to Rust
Traduce un comando cURL a código Rust asíncrono con el crate reqwest sobre el runtime de tokio, e incluye como comentarios las dependencias de Cargo.toml. Los encabezados se encadenan con .header(), -u se convierte en .basic_auth(), los campos -F van a .form() y el texto de la respuesta se imprime después de .send().await?. El comando se analiza en el navegador, nunca en un servidor.
Categoría: API.
Preguntas frecuentes
¿De qué crates depende el código Rust?
▾
De reqwest 0.12 y tokio: el código empieza con las líneas de Cargo.toml que debes agregar (reqwest con la feature json, tokio con full) y se ejecuta en un main asíncrono marcado con #[tokio::main]. Las peticiones se esperan con .send().await? y los errores se propagan como reqwest::Error.
¿Cómo se envía un cuerpo JSON en el código Rust?
▾
El cuerpo se pasa a .body() como un literal de cadena escapado en lugar de .json(), así que no necesitas tipos de serde. La salida actual omite el encabezado Content-Type cuando el cuerpo es JSON, así que agrega Content-Type: application/json con .header() si la API lo verifica.
¿Cómo se traducen -X, -u y -F a métodos de reqwest?
▾
-X, o el POST implícito de -d, elige .get(), .post(), .put(), .delete(), .patch() o .head(), y los demás verbos pasan por .request() con reqwest::Method::from_bytes. -u usuario:clave se convierte en .basic_auth(usuario, Some(clave)) junto a un encabezado Authorization explícito con el mismo valor, que puedes borrar. Los campos -F se pasan a .form() y se envían codificados como URL; para multipart necesitas la feature multipart de reqwest y reqwest::multipart::Form.
¿La petición Rust sigue redirecciones u omite la verificación TLS?
▾
Las redirecciones se siguen por defecto, hasta 10, así que -L no necesita traducción. -k no se convierte; para aceptar certificados inválidos, crea el cliente con Client::builder().danger_accept_invalid_certs(true) en lugar de Client::new().