¿Cómo realizar peticiones tipo GET con un cliente de Go?
Para realizar peticiones GET, Go puede hacer uso de la librería net/http. Al utilizar el método GET de esta librería, deja de ser necesario configurar todas las cabeceras para indicar que se desea realizar dicho request.
Utilizamos el método http.Get, la cual retorna dos valores, response y error.
res, err := http.Get("http://reddit.com")
if err != nil {
log.Fatal(err)
}
Cuando todos los datos han sido leídos por el cliente, la conexión se cierra.
defer res.Body.Close()
Ahora leemos el contenido de res.Body.
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Fatal(err)
}
El ejemplo de manera completa luciría así.
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
res, err := http.Get("http://reddit.com")
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s", body)
}