在 Go 中发出 POST 请求时,确保正确配置和发送请求以避免连接问题非常重要。让我们解决该领域开发人员面临的常见挑战。
问题:
尝试发送 POST 请求时,目的地未收到任何响应。以下代码片段是发出此类请求的有效方法吗?
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)
答案:
您提供的代码片段在添加表单数据的方式上存在一个小问题到请求。表单数据应在请求正文中发送,而不是作为 URL 参数的一部分。下面是更正后的代码:
req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))
在此更正后的代码中,strings.NewReader(form.Encode()) 调用将表单数据编码为字符串并将其分配给请求正文。这确保了表单数据正确发送并且可以被服务器处理。
以上是我的Go POST请求代码是否正确发送表单数据?的详细内容。更多信息请关注PHP中文网其他相关文章!