Avatar ·

¿Cómo hacer una solicitud HTTP en Go?

¡Hola a todos! Por favor, indíquenme cómo realizar correctamente una solicitud HTTP GET en Go y obtener una respuesta del servidor. Soy nuevo en el lenguaje y me encontré con un problema al intentar obtener datos de una API externa.

Actualmente estoy usando la biblioteca estándar net/http, pero mi código parece colgarse y no devuelve ningún resultado. Esto es lo que he probado:

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    resp, err := http.Get("https://api.example.com/data")
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error de lectura:", err)
        return
    }

    fmt.Println(string(body))
}

El problema es que el programa simplemente se queda colgado sin mostrar nada, y no veo ni errores ni datos. Ya he verificado que la URL funciona (con curl todo está bien). Sospecho que el problema podría ser la falta de un timeout.