Conversor de curl a Go
Convierte un comando curl a código de Go con net/http al instante en tu navegador. El comando permanece en tu dispositivo.
Tu comando curl se convierte a Go localmente en tu navegador y nunca se sube, pero evita pegar tokens o credenciales de producción reales en cualquier herramienta.
¿Necesitas también una versión en JavaScript? Prueba cURL a Fetch.
Acerca de curl a Go
Este conversor de curl a go reescribe un comando curl como Go idiomático usando el paquete estándar net/http, así puedes llevar una llamada a una API directo a un servicio en Go sin configurarla a mano. Como herramienta de curl a golang lee banderas como -X, -H, -d, --data-raw, --json, -u, -b y -G, construye un http.NewRequest con el método correcto, define cada cabecera con req.Header.Set y envuelve el cuerpo en un strings.NewReader. El main() generado lee la respuesta con io.ReadAll e imprime el estado, listo para compilar con go run. Úsalo cuando portes una prueba de curl a un manejador de backend, una CLI o un worker. La conversión ocurre en tu navegador, así que el comando y cualquier token que contenga se procesan localmente en tu dispositivo y nunca salen de él.
Características
- Construye una llamada http.NewRequest con el método inferido de las banderas de curl
- Define cada valor -H/--header con req.Header.Set
- Envuelve el cuerpo de la solicitud en strings.NewReader y añade el import strings solo cuando hace falta
- Lee la respuesta con io.ReadAll e imprime res.Status y el cuerpo
- Mapea -u/--user a una cabecera de autenticación básica y maneja cookies, user-agent y referer
- Añade los datos de -G/--get a la URL como una cadena de consulta y envía un cuerpo nil
- Incluye comprobaciones básicas de error después de NewRequest y Do para que el fragmento compile
- Copia el resultado o descárgalo como request.go con un clic
Cómo usar curl a Go
- Pega tu comando curl en el cuadro del comando cURL.
- Lee el programa de Go con net/http generado en el panel de salida.
- Revisa el banner de advertencia por si hay banderas que se ajustaron u omitieron.
- Haz clic en Copiar, o descarga el archivo como request.go y ejecútalo con go run.
Ejemplo
Entrada
curl https://api.example.com/ping
Salida
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.example.com/ping"
req, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(res.Status)
fmt.Println(string(data))
}
Un GET sin cuerpo pasa nil a http.NewRequest y omite el import strings.
Errores comunes y solución de problemas
- El compilador informa un error imported and not used "strings". — Ese import solo se emite cuando hay un cuerpo de solicitud. Si quitaste el cuerpo a mano, elimina también el import strings.
- Quieres un cliente reutilizable con tiempos de espera en vez de http.DefaultClient. — Reemplaza http.DefaultClient por tu propio &http.Client{Timeout: ...}; el fragmento usa el cliente por defecto para mantenerse breve.
- El cuerpo se envía como texto en bruto pero tu endpoint necesita JSON. — La cabecera Content-Type se traslada desde curl. Asegúrate de que el comando original defina un Content-Type JSON o use --json para que la cabecera esté presente.
Preguntas frecuentes
- ¿Cómo convierto un comando curl a Go?
- Pega el comando curl en el cuadro de entrada y el conversor renderiza un programa de Go con net/http completo a la derecha que puedes copiar o descargar como request.go.
- ¿El código de Go generado usa la biblioteca estándar?
- Sí. Usa net/http, io, fmt y strings solo de la biblioteca estándar, así que no hay nada extra que hacer con go get antes de ejecutarlo.
- ¿Cómo se representa el cuerpo de la solicitud en Go?
- El cuerpo se envuelve en strings.NewReader y se pasa a http.NewRequest, y el import strings se añade automáticamente solo cuando hay un cuerpo presente.
- ¿Puedo ejecutar la salida directamente con go run?
- Sí. El conversor emite un package main completo con una función main(), manejo básico de errores e impresión de la respuesta, así que go run request.go funciona tal cual.
- ¿Se envía mi comando curl a un servidor cuando lo convierto a Go?
- No. La conversión de curl a go se ejecuta por completo en tu navegador, así que el comando y cualquier secreto que contenga permanecen en tu dispositivo.
Herramientas relacionadas
- curl a Python — Convierte un comando curl en un script de Python con requests.
- curl a PHP — Convierte un comando curl en un script PHP con la extensión cURL.
- curl a Node.js — Convierte un comando curl en código de Node.js con axios.
- cURL a Fetch — Convierte un comando curl en una llamada fetch() de JavaScript.
- Cliente de API — Envía peticiones HTTP, crea cabeceras y parámetros e inspecciona respuestas; guarda tus últimas 25.
- Analizador de URL — Descompone una URL en sus partes y lista los parámetros de consulta.
Todas las herramientas de ArrayKit