通过 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中文网其他相关文章!