首页 >后端开发 >Golang >如何使用 Go 的 `http.NewRequest(...)` 发出 URL 编码的 POST 请求?

如何使用 Go 的 `http.NewRequest(...)` 发出 URL 编码的 POST 请求?

Linda Hamilton
Linda Hamilton原创
2024-12-28 15:06:10968浏览

How to Make URL-Encoded POST Requests with Go's `http.NewRequest(...)`?

通过 http.NewRequest(...) 进行 HTTP URL 编码的 POST 请求

表单编码数据是通过 HTTP 发送数据的基本技术。这种数据编码格式被广泛支持并应用于各种场景。让我们探索一种使用 http.NewRequest(...) 发出 POST 请求的方法,同时保持对请求标头的控制。

要传输 URL 编码的数据,负载不应附加到 URL,而应通过请求正文。这涉及创建一个 bytes.Buffer 来保存我们的表单编码数据:

data := url.Values{}
data.Set("name", "foo")
data.Set("surname", "bar")
encoder := bytes.Buffer{}
encoder.WriteString(data.Encode())

现在,我们可以创建我们的 http.Request 并将缓冲区附加到正文:

request, err := http.NewRequest(http.MethodPost, urlStr, &encoder)

由于我们正在处理表单编码的数据,因此我们需要在headers:

request.Header.Set("Content-Type", "application/x-www-form-urlencoded")

最后,我们准备发送请求:

resp, err := http.DefaultClient.Do(request)

按照以下步骤,您可以使用 http.NewRequest 成功发出 URL 编码的 POST 请求(...) 和自定义请求标头。请记住,URL 编码的数据应在请求正文中发送,并且应相应设置内容类型标头。

以上是如何使用 Go 的 `http.NewRequest(...)` 发出 URL 编码的 POST 请求?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn