Cómo obtener el cuerpo de una respuesta HTTP como string en Go
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al trabajar con HTTP requests. Necesito enviar un GET request a una API externa y obtener la respuesta como un string normal para luego procesarlo — por ejemplo, parsear JSON o simplemente imprimirlo en el log.
Escribí este código:
```go
resp, err := http.Get("https://api.example.com/data")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
fmt.Println(resp) // imprime algo como &{200 OK 200 ...}
```
El problema es que `resp` es una estructura `*http.Response`, no un string. Intenté acceder a `resp.Body`, pero es un `io.ReadCloser`, y no sé cómo obtener el texto a partir de él. En otros lenguajes (Python, JavaScript) estoy acostumbrado a simplemente leer `response.text` o `response.body`, pero aquí es más complicado.
Leí la documentación, pero hay mucho sobre interfaces `io.Reader` y buffers. ¿Podrían indicarme una forma simple y correcta de leer toda la respuesta en un string? Preferiblemente con un ejemplo de código que pueda copiar directamente.
No answers yet.
Inicia sesión para dejar una respuesta