Convertir curl a Ruby

curl2code convierte comandos curl a código Ruby utilizando la librería estándar net/http. Todo se ejecuta localmente en su navegador a través de WebAssembly para una privacidad total. Si prefiere Python, consulte nuestro conversor de curl a Python. Para Elixir, vea curl a Elixir. A continuación se presentan ejemplos prácticos de Ruby.

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 Ruby net/http?

net/http de Ruby es el cliente HTTP de la biblioteca estándar incluido en cada instalación de Ruby. Maneja GET, POST, cargas multipart, SSL y encabezados personalizados. No se necesita instalar ninguna gema. curl2code también admite HTTParty, una gema popular que simplifica los patrones HTTP comunes con una API limpia y declarativa.

net/http vs HTTParty vs Faraday — ¿cuál debería usar?

net/http está integrado y no tiene dependencias; es ideal para tareas simples y scripts. HTTParty proporciona un DSL limpio con análisis automático de JSON. Faraday ofrece middleware, patrones de adaptador y la mayor flexibilidad. Para una simplicidad de scripting similar, consulta nuestro conversor de curl a Python o curl a PHP.

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

Con net/http: request["Authorization"] = "Bearer token". Para autenticación Basic: request.basic_auth("user", "pass"). HTTParty usa headers: { "Authorization" => "Bearer token" } o basic_auth: { username: "user", password: "pass" }. curl2code maneja tanto -u como las etiquetas de encabezado.

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

Con net/http, usa la gema multipart-post o construye el cuerpo multipart manualmente usando Net::HTTP::Post con cadenas de límite. HTTParty simplifica esto con body: { file: File.open("path") }. curl2code convierte las etiquetas -F para ambas variantes de biblioteca.

¿Cómo manejar errores HTTP en Ruby?

Con net/http, comprueba response.is_a?(Net::HTTPSuccess) o usa response.value, que lanza una excepción en estados que no sean 2xx. HTTParty devuelve un objeto de respuesta con los métodos .success? y .code. Para conexiones persistentes, rescata Errno::ECONNREFUSED y Net::ReadTimeout.

¿Cómo realizar solicitudes HTTP concurrentes en Ruby?

La biblioteca estándar de Ruby es síncrona. Usa Thread.new { ... } para una concurrencia básica o la gema concurrent-ruby para grupos de hilos. Para E/S asíncrona, usa async-http con la gema Async. Typhoeus proporciona colas de solicitudes en paralelo. Para soporte asíncrono integrado, consulta curl a Elixir.

¿Cómo establecer tiempos de espera en Ruby?

Con net/http: http.open_timeout = 10 (conexión) y http.read_timeout = 30 (respuesta). HTTParty acepta la opción timeout: 30. Estos se asignan a --connect-timeout y --max-time de curl. Establece siempre tiempos de espera para evitar solicitudes colgadas indefinidamente.

¿Cómo usar un proxy en Ruby?

Con net/http: Net::HTTP.new(host, port, proxy_host, proxy_port). O establece las variables de entorno http_proxy y https_proxy; Ruby las respeta automáticamente. HTTParty usa la opción http_proxy: 'http://proxy:8080'. curl2code convierte las etiquetas -x a la sintaxis de Ruby correcta.

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

Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL a Ruby usando curl2code. El código generado utiliza Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json'). curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de net/http.

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

Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de net/http con el encabezado de autorización: req['Authorization'] = 'Bearer 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 Ruby?

curl2code convierte curl -H "Content-Type: application/json" URL a código de net/http con el encabezado correcto: req['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 net/http correcta.

Enlaces útiles

Guías de curl

Convertir curl a otros lenguajes