Maison  >  Article  >  développement back-end  >  Comment définir l'en-tête dans Golang

Comment définir l'en-tête dans Golang

PHPz
PHPzoriginal
2023-04-03 09:17:152545parcourir

Golang est un langage de programmation efficace qui est devenu le premier choix de nombreuses personnes. Dans Golang, la configuration de l'en-tête est une opération très basique, et cette fonction est également celle que tout le monde doit souvent utiliser. Alors, comment définir l’en-tête dans Golang ?

Dans Golang, pour définir l'en-tête, nous devons utiliser le type Header dans le package http. Le type Header représente l'en-tête du message HTTP, qui peut être utilisé pour ajouter ou modifier les informations d'en-tête d'une requête ou d'une réponse HTTP. Le type Header est un type map, la clé est un type chaîne et la valeur peut être une tranche de type chaîne. Voici un exemple :

package main

import (
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
        w.Header().Set("Content-Type", "text/plain")
        w.Write([]byte("Hello, world!"))
    })

    http.ListenAndServe(":8080", nil)
}

Dans le code ci-dessus, nous définissons une fonction de gestionnaire qui utilise la fonction HandleFunc dans le package http. La fonction HandleFunc peut être utilisée pour enregistrer une fonction de gestionnaire qui sera appelée lorsque le navigateur accédera au répertoire racine du site Web. Dans le corps de la fonction, nous utilisons les paramètres ResponseWriter et Request pour gérer les requêtes et les réponses HTTP. La méthode w.Header().Set() est utilisée pour définir les informations d'en-tête Content-Type, qui indiquent au navigateur que le contenu que nous envoyons est du texte brut plutôt que du HTML. Enfin, nous utilisons w.Write() pour envoyer une chaîne au navigateur.

En plus de la méthode Set, le type Header fournit également la méthode Add et la méthode Del. La méthode Add est utilisée pour ajouter des informations d'en-tête si les informations d'en-tête existent déjà, elles seront ajoutées après les informations d'en-tête d'origine. La méthode Del est utilisée pour supprimer une information d'en-tête si l'information d'en-tête n'existe pas, l'appel de méthode sera ignoré.

Voici un exemple qui montre comment supprimer et ajouter des informations d'en-tête HTTP à l'aide des méthodes Add et Del :

package main

import (
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){
        w.Header().Add("Cache-Control", "no-cache")
        w.Header().Add("Cache-Control", "max-age=0")

        w.Write([]byte("Hello, world!"))
    })

    http.HandleFunc("/deleteheader", func(w http.ResponseWriter, r *http.Request){
        w.Header().Del("Cache-Control")

        w.Write([]byte("Header deleted"))
    })

    http.ListenAndServe(":8080", nil)
}

Dans le code ci-dessus, nous avons utilisé la méthode Add pour ajouter des informations d'en-tête HTTP. Étant donné que la méthode Add peut ajouter plusieurs informations d'en-tête portant le même nom, nous avons ajouté deux valeurs pour les informations d'en-tête Cache-Control. Dans la route /deleteheader, nous utilisons la méthode Del pour supprimer les informations d’en-tête Cache-Control.

Résumé :

Dans Golang, vous pouvez utiliser le type d'en-tête dans le package http pour définir les informations d'en-tête. Nous pouvons utiliser la méthode Set pour définir les informations d'en-tête, la méthode Add pour ajouter des informations d'en-tête et la méthode Del pour supprimer les informations d'en-tête. Si des informations d’en-tête portant le même nom existent, la méthode Add les ajoutera après les informations d’en-tête d’origine. La méthode Del supprimera toutes les informations d’en-tête portant le même nom.

J'espère que cet article vous sera utile, allez l'essayer !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn