Créer dynamiquement des chaînes de requête dans les requêtes Go GET
Dans Go, construire des requêtes HTTP GET avec des chaînes de requête peut être un dilemme. L'approche par défaut nécessite la concaténation des chaînes, ce qui devient fastidieux et sujet aux erreurs. Pour résoudre ce problème, Go fournit le package net/url, qui offre un moyen plus efficace de créer des chaînes de requête dynamiques.
Pour créer une chaîne de requête, vous pouvez utiliser le type query.Values du package net/url. L'extrait de code suivant montre comment procéder :
package main import ( "fmt" "log" "net/http" "golang.org/x/net/context" "golang.org/x/net/http2" ) func main() { ctx := context.Background() // Get the request context req := http.Request{} ctx = context.WithValue(ctx, http2.ClientConnContextKey, nil) // Build the querystring q := new(url.Values) // Initialize a new querystring q.Add("api_key", "my_api_key") q.Add("limit", "10") // Parse the URL and add the querystring url := "http://example.com/api/v1/users" url = fmt.Sprintf("%s?%s", url, q.Encode()) // Send the request resp, err := http.Get(url) if err != nil { log.Fatal(err) } defer resp.Body.Close() // Process the response fmt.Println(resp.Status) body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatal(err) } fmt.Println(string(body)) }
Dans cet exemple, le type query.Values vous permet d'ajouter dynamiquement des paramètres de chaîne de requête. La fonction url.String combine l'URL et la chaîne de requête, ce qui donne une requête GET valide.
L'utilisation du package net/url simplifie le processus de création de chaînes de requête dynamiques dans les requêtes Go GET, le rendant plus efficace et réduisant les erreurs. -enclin.
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!