🥇 Servidores Web, Content Type.

Una aplicación de servidor, puede responder con diferentes tipos de contenido (Content-Type), algunos de ellos son…

Supongamos que deseamos enviar una respuesta en base al tipo de contenido con el cual se realizo la petición en cada uno de los 3 anteriores casos.

Mediante el objeto http.Request es posible acceder al tipo de contenido de la solicitud utilizando r.Header.Get(“Accept”).

package main

import "net/http"

func Home(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        http.NotFound(w, r)
        return
    }
    switch r.Header.Get("Accept") {
    case "application/json":
        w.Header().Set("Content-Type", "application/json; charset=utf-8")
        w.Write([]byte(`{"mensaje":"Hola Mundo"}`))
    case "application/xml":
        w.Header().Set("Content-Type", "application/xml; charset=utf-8")
        w.Write([]byte(`<?xml version="1.0" encoding="utf-8"?><Mensaje>Hola Mundo</Mensaje>`))
    default:
        w.Header().Set("Content-Type", "text/plain; charset=utf-8")
        w.Write([]byte("Hola Mundo"))
    }
}

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

En el anterior ejemplo hemos utilizado un switch sobre el valor de Accept, de forma que existen los tres posibles escenarios y por default se utiliza text/plain.

En curl es posible pasar este parametro utilizando el argumento -H.

Por ejemplo para enviar una petición en formato…

Servidores Web, Uso de cabeceras. Servidores Web, Tipos de Peticiones.
comments powered by Disqus