Convertir curl a Go
Convierta comandos curl a código Go utilizando el paquete estándar net/http. curl2code se ejecuta completamente en su navegador a través de WebAssembly; sus datos permanecen privados. Si prefiere un lenguaje de nivel superior, pruebe nuestro conversor de curl a Python. Para programación de sistemas, vea curl a Rust. A continuación se muestran ejemplos de Go listos para usar.
Cómo copiar curl desde su navegador
- 1
Abrir DevTools
Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.
- 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
Copiar como cURL
Haga clic derecho en la solicitud → Copy → Copy as cURL. Luego péguelo arriba.
Preguntas frecuentes
¿Qué es Go net/http?
net/http de Go es un cliente y servidor HTTP de grado de producción incluido en la biblioteca estándar. No requiere dependencias externas, admite HTTP/2 por defecto y proporciona agrupación de conexiones, tiempos de espera y configuración de TLS de forma nativa. Es la única biblioteca que curl2code utiliza para Go; no se necesitan paquetes de terceros.
net/http vs clientes HTTP de Go de terceros — ¿cuál usar?
net/http de Go es lo suficientemente potente para la mayoría de los casos de uso; a diferencia de muchos lenguajes, la biblioteca estándar está lista para producción. Las opciones de terceros como resty añaden comodidad (reintentos automáticos, encadenamiento) pero añaden dependencias. Para un enfoque integral similar, consulta nuestro conversor de curl a Rust (reqwest) o curl a Python.
¿Cómo manejar la autenticación en Go?
Establece el encabezado Authorization con req.Header.Set("Authorization", "Bearer "+token). Para la autenticación Basic, usa req.SetBasicAuth(user, pass), que establece el encabezado automáticamente. curl2code detecta -u y -H 'Authorization: ...' y genera el código Go correcto.
¿Cómo enviar datos de formulario multipart en Go?
Usa el paquete mime/multipart: crea un escritor con multipart.NewWriter(body), añade campos con CreateFormField y archivos con CreateFormFile. Establece Content-Type en writer.FormDataContentType(). curl2code maneja todas las conversiones de etiquetas -F.
¿Cómo manejar errores HTTP en Go?
Go utiliza retornos de error explícitos: comprueba siempre if err != nil después de http.Do(req). Luego comprueba resp.StatusCode para errores a nivel de HTTP. Usa siempre defer resp.Body.Close() para evitar fugas de recursos. Este manejo explícito de errores es un patrón central de Go: sin excepciones, sin try/catch.
¿Cómo realizar solicitudes HTTP concurrentes en Go?
Usa goroutines con sync.WaitGroup o canales. Lanza cada solicitud en una goroutine con go func() { ... }(). Para una concurrencia limitada, usa un canal de semáforo. Las goroutines de Go son ligeras; puedes manejar fácilmente miles de solicitudes concurrentes. Para patrones de concurrencia similares, consulta curl a Rust.
¿Cómo establecer tiempos de espera en el cliente HTTP de Go?
Establece client.Timeout para el plazo global de la solicitud. Para un control detallado, usa context.WithTimeout o context.WithDeadline y pasa el contexto a http.NewRequestWithContext. El --connect-timeout de curl se asigna al tiempo de espera de Transport.DialContext, y --max-time se asigna a client.Timeout.
¿Cómo configurar un proxy en Go?
Establece Transport.Proxy en http.ProxyURL(proxyUrl) en un http.Transport personalizado. Go también respeta las variables de entorno HTTP_PROXY y HTTPS_PROXY por defecto a través de http.ProxyFromEnvironment. curl2code convierte las etiquetas -x y --proxy a la configuración de proxy de Go adecuada.
¿Cómo enviar una solicitud POST con un cuerpo JSON en Go?
Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL a Go usando curl2code. El código generado utiliza http.Post(url, "application/json", bytes.NewBuffer(jsonData)). 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 Go?
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.Header.Set("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 Go?
curl2code convierte curl -H "Content-Type: application/json" URL a código de net/http con el encabezado correcto: req.Header.Set("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
Códigos de error de curl
Busca cualquier código de salida de curl — causas, soluciones y consejos de depuración.
Descargar archivos con curl
Guarda archivos con -o, -O, sigue redirecciones, reanuda descargas y más.
SSL, TLS y proxy
Configura certificados, versiones de TLS, proxies HTTP/SOCKS y DNS personalizado.