Lorsque vous effectuez des requêtes POST dans Go, il est important de vous assurer qu'elles sont configurées et envoyées correctement pour éviter les problèmes de connectivité. Abordons un défi courant rencontré par les développeurs dans ce domaine.
Question :
Lors de la tentative d'envoi d'une requête POST, aucune réponse n'est reçue à la destination. L'extrait de code suivant est-il une approche valide pour effectuer de telles demandes ?
hc := http.Client{} req, err := http.NewRequest("POST", APIURL, nil) form := url.Values{} form.Add("ln", c.ln) form.Add("ip", c.ip) form.Add("ua", c.ua) req.PostForm = form req.Header.Add("Content-Type", "application/x-www-form-urlencoded") glog.Info("form was %v", form) resp, err := hc.Do(req)
Réponse :
L'extrait de code que vous avez fourni présente un problème mineur dans la façon dont les données du formulaire sont ajoutées. à la demande. Les données du formulaire doivent être envoyées dans le corps de la demande, et non dans les paramètres de l'URL. Voici le code corrigé :
req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))
Dans ce code corrigé, l'appel strings.NewReader(form.Encode()) encode les données du formulaire dans une chaîne et l'attribue au corps de la requête. Cela garantit que les données du formulaire sont envoyées correctement et peuvent être traitées par le serveur.
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!