使用 Go 发送 POST 请求
在 Go 中发出 POST 请求可能是一项常见任务。本文将为尝试在 Go 中发送 POST 请求时遇到的常见问题提供解决方案。
问题:
“我正在尝试发送 POST请求,但我似乎无法让它工作。我知道 PostForm 函数,但我相信它不能用 httputil 进行测试,正确吗?”
解决方案:
问题陈述中提供的代码大部分是正确的。缺少的组件是将表单数据分配给请求正文。下面是更正后的代码:
req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))
在原始代码中,表单数据被分配给 req.PostForm,用于提交表单数据作为标题的一部分。对于 POST 请求,表单数据应在请求正文中发送。使用 strings.NewReader(form.Encode()) 创建一个 io.Reader,其中包含编码为 URL 编码字符串的表单数据,这是使用 application/x-www-form-urlencoded 内容类型的 POST 请求的预期格式.
以上是为什么我的Go POST请求没有向接收端发送数据?的详细内容。更多信息请关注PHP中文网其他相关文章!