Maison >développement back-end >Golang >Comment accéder aux chaînes de requête dans les requêtes HTTP POST de Go ?

Comment accéder aux chaînes de requête dans les requêtes HTTP POST de Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-10 17:22:10744parcourir

How to Access Query Strings in Go's HTTP POST Requests?

Accès aux chaînes de requête dans les requêtes POST avec le package HTTP de Go

Lors du traitement des requêtes POST avec le package HTTP de Go, l'accès et l'analyse des chaînes de requête peuvent être crucial. Le package HTTP fournit une méthode pratique pour extraire les chaînes de requête : Query().

Dans une requête POST, la chaîne de requête est généralement attachée à l'URL, contenant des paires d'informations clé-valeur. . La méthode Query() récupère ces paires clé-valeur et les analyse dans une carte de valeurs.

Pour accéder à la chaîne de requête dans une requête POST, suivez ces étapes :

  • Extraire l'URL : Depuis l'objet *http.Request, obtenez l'URL en utilisant r.URL.
  • Analysez le Chaîne de requête : Utilisez la méthode Query() sur l'URL pour analyser la chaîne de requête. Cela renvoie une carte de valeurs, où les clés représentent les noms de paramètres et les valeurs correspondantes sont des tableaux de valeurs pour ce paramètre.
  • Accès aux valeurs des paramètres : Pour récupérer les valeurs des paramètres de la carte de valeurs, utilisez soit la notation d'index Get() ou []string.
  • REMARQUE : La sensibilité à la casse est importante lors de l'accès aux clés de paramètre dans les valeurs carte.

Par exemple :

func newHandler(w http.ResponseWriter, r *http.Request) {
  fmt.Println("GET params were:", r.URL.Query())

  // if only one expected
  param1 := r.URL.Query().Get("param1")
  if param1 != "" {
    // ... process it, will be the first (only) if multiple were given
    // note: if they pass in like ?param1=&param2= param1 will also be "" :|
  }

  // if multiples possible, or to process empty values like param1 in
  // ?param1=&param2=something
  param1s := r.URL.Query()["param1"]
  if len(param1s) > 0 {
    // ... process them ... or you could just iterate over them without a check
    // this way you can also tell if they passed in the parameter as the empty string
    // it will be an element of the array that is the empty string
  }    
}

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