Skip to main content
Volver a herramientas

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().

Herramientas relacionadas