Convertir curl a Rust

curl2code convierte comandos curl a código Rust utilizando el crate reqwest. La conversión se ejecuta en su navegador a través de WebAssembly para una privacidad total. Para Go, consulte nuestro conversor de curl a Go. Para C, vea curl a C. A continuación se presentan ejemplos prácticos de Rust con async/await.

Cómo copiar curl desde su navegador

  1. 1

    Abrir DevTools

    Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.

  2. 2

    Vaya a la pestaña Network

    Haga clic en la pestaña Network y realice la acción que activa la solicitud HTTP.

  3. 3

    Copiar como cURL

    Haga clic derecho en la solicitud → CopyCopy as cURL. Luego péguelo arriba.

Preguntas frecuentes

¿Qué es Rust reqwest?

reqwest es el cliente HTTP más popular para Rust, construido sobre hyper. Proporciona APIs tanto bloqueantes como asíncronas, serialización automática de JSON a través de serde, TLS, manejo de cookies y soporte de proxy. Añádelo con cargo add reqwest --features json. Es la biblioteca predeterminada que curl2code utiliza para las conversiones de Rust.

reqwest vs hyper vs ureq — ¿cuál debería usar?

reqwest es la opción preferida para la mayoría de los proyectos: de alto nivel, rica en funciones y asíncrona. hyper es de nivel más bajo y ofrece el máximo control (reqwest está construido sobre ella). ureq es un cliente mínimo, solo bloqueante, sin dependencia de tiempo de ejecución asíncrono. Para un enfoque de biblioteca estándar similar, consulta curl a Go o curl a C.

¿Cómo manejar la autenticación en Rust?

Para Bearer: client.get(url).bearer_auth(token). Para Basic: client.get(url).basic_auth(user, Some(pass)). O establece los encabezados manualmente con .header("Authorization", value). curl2code convierte las etiquetas -u y -H 'Authorization: ...' a los métodos de reqwest adecuados.

¿Cómo enviar datos de formulario multipart en Rust?

Usa reqwest::multipart::Form: crea con Form::new(), añade campos de texto con .text("key", "value") y archivos con .file("field", path).await?. Pásalo a client.post(url).multipart(form). curl2code maneja las etiquetas -F para el multipart de reqwest.

¿Cómo manejar errores HTTP en Rust?

reqwest devuelve un Result que contiene un Response en caso de éxito o un reqwest::Error en caso de fallo — utilice el operador ? para la propagación. Verifique response.status().is_success() o llame a response.error_for_status()?, que convierte los códigos no-2xx en errores. El sistema de tipos de Rust garantiza que todas las rutas de error se manejen explícitamente en tiempo de compilación.

¿Qué tiempo de ejecución asíncrono necesita reqwest?

reqwest requiere el tiempo de ejecución tokio por defecto. Anota tu función main con #[tokio::main]. Para un uso bloqueante sin un tiempo de ejecución asíncrono, habilita la función blocking y usa reqwest::blocking::Client. curl2code genera código asíncrono con tokio por defecto. Para otro ecosistema asíncrono, consulta curl a Go (goroutines).

¿Cómo establecer tiempos de espera en Rust reqwest?

Establece en el cliente: Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?. Por solicitud: client.get(url).timeout(Duration::from_secs(5)). Estos se asignan a las etiquetas --max-time y --connect-timeout de curl.

¿Cómo usar un proxy con reqwest?

Establece un proxy en el constructor del cliente: Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?. Admite proxies HTTP, HTTPS y SOCKS5. reqwest también respeta las variables de entorno HTTP_PROXY y HTTPS_PROXY por defecto. curl2code convierte las etiquetas -x a la configuración del proxy.

¿Cómo enviar una solicitud POST con un cuerpo JSON en Rust?

Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL a Rust usando curl2code. El código generado utiliza client.post(url).json(&data).send().await?. curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de reqwest.

¿Cómo añadir autorización con token Bearer en Rust?

Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de reqwest con el encabezado de autorización: .bearer_auth("YOUR_TOKEN"). curl2code detecta tokens Bearer tanto en los flags -H "Authorization: Bearer ..." como en --oauth2-bearer. Para Basic auth, utiliza -u user:pass.

¿Cómo configurar el encabezado Content-Type en Rust?

curl2code convierte curl -H "Content-Type: application/json" URL a código de reqwest con el encabezado correcto: .header("Content-Type", "application/json"). Para los datos de -d, curl utiliza por defecto application/x-www-form-urlencoded; para subidas de formularios con -F, utiliza multipart/form-data. curl2code mapea cada uno a la API de reqwest correcta.

Enlaces útiles

Guías de curl

Convertir curl a otros lenguajes