Maison >développement back-end >Golang >Comment ajouter efficacement des paramètres de chaîne de requête aux requêtes GET de Go ?
Dans Go, l'envoi de requêtes GET avec des paramètres de chaîne de requête peut être réalisé à l'aide de http.Client. Cependant, cette tâche n'est peut-être pas aussi simple qu'il y paraît.
Pour surmonter ce défi, vous pouvez tirer parti du package net/url. Son type Values fournit un mécanisme pratique pour créer des chaînes de requête. Prenons l'exemple suivant :
import ( "fmt" "log" "net/http" "os" "net/url" ) func main() { // Create a new request object with an initial URL. req, err := http.NewRequest("GET", "http://api.themoviedb.org/3/tv/popular", nil) if err != nil { log.Print(err) os.Exit(1) } // Get the existing query parameters from the request URL. q := req.URL.Query() // Add your querystring parameters to the `q` map. q.Add("api_key", "key_from_environment_or_flag") q.Add("another_thing", "foo & bar") // Encode the updated `q` map into a raw querystring and set it in the request. req.URL.RawQuery = q.Encode() // Retrieve the final URL with the querystring for debugging purposes. fmt.Println(req.URL.String()) // Output: // http://api.themoviedb.org/3/tv/popular?another_thing=foo+%26+bar&api_key=key_from_environment_or_flag }
Ce code montre comment créer dynamiquement des paramètres de chaîne de requête sans recourir à la concaténation de chaînes. La méthode Encode de url.Values garantit que les caractères spéciaux sont correctement codés pour la transmission.
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!