Cómo establecer un timeout para http.Get() en Golang?
¡Hola a todos! Soy nuevo en Go y me encontré con un problema al realizar solicitudes HTTP.
Necesito enviar solicitudes GET a una API externa, pero a veces el servidor se cuelga o responde muy lentamente. En el ejemplo estándar de la documentación uso `http.Get()`, y simplemente se queda colgado indefinidamente, bloqueando todo el programa. Aquí está mi código:
```go
resp, err := http.Get("https://api.example.com/data")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
```
El problema es que si el servidor no responde, el programa se cuelga para siempre. Quiero establecer un timeout, por ejemplo, de 5 segundos, para que en caso de que no haya respuesta, el programa arroje un error y continúe.
Intenté buscar en la documentación, pero no encontré una forma sencilla de agregar un timeout a `http.Get()`. Vi algo sobre `http.Client`, pero no entendí cómo aplicarlo correctamente.
Díganme, ¿cómo implementar correctamente un timeout para solicitudes HTTP en Go? ¿Es necesario crear un cliente separado o hay alguna forma de pasar el timeout directamente a `Get()`? También me interesa