Servidores Web, Manejo de datos mediante GET de Servidores Web, Manejo de datos mediante GET

Un servidor web HTTP puede enviar y recibir datos mediante el uso de formularios.

Procesar datos es una tarea sencilla en Go. Dependiendo de el tipo de request, estos valores se envian de distintas formas.

☆ ¿Cómo realizar una petición web directo desde el navegador?

Para una petición GET los valores son enviados como parte de la url, por ejemplo.

http://localhost:8000/?nombre=Raul

El servidor web puede tener acceso al valor de la variable nombre cuyo valor es Raul. Para ello utilizamos el método r.URL.Query() en donde r es el objeto http.Request.

package main

import (
    "fmt"
    "net/http"
)

func Home(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        http.NotFound(w, r)
        return
    }
    for k, v := range r.URL.Query() {
        fmt.Fprintf(w, "%s - %s\n", k, v)
    }
}

func main() {
    http.HandleFunc("/", Home)
    http.ListenAndServe(":8000", nil)
}

En el ejemplo anterior vemos que podemos recorrer todos los valores enviados al query mediante un for … range.

for k, v := range r.URL.Query() {
    fmt.Fprintf(w, "%s - %s\n", k, v)
}

Si realizamos la petición mediante curl podemos ver los resultados.

$ curl http://localhost:8000/\?nombre\=Raul\&apellido\=Jimenez -X GET
nombre - [Raul]
apellido - [Jimenez]