首页 >后端开发 >Golang >如何在 Go 中为多部分 POST 请求设置正确的内容类型?

如何在 Go 中为多部分 POST 请求设置正确的内容类型?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-24 03:30:31359浏览

How to Set Proper Content-Type for Multipart POST Requests in Go?

Go 中的 HTTP 多部分请求

创建多部分请求,通常用于发送特定格式的数据,可以使用 multipart 包来实现去。让我们探讨如何解决这个问题。

考虑以下场景:发送包含 JSON 数据和边界的多部分 POST 请求。此边界分隔了请求的不同部分。

已经进行了多次尝试,如给定的代码片段所示。但是,服务器始终返回 200 HTTP 错误,表明消息类型不受支持。

要解决此问题,我们需要正确设置每个部分的 Content-Type。修改后的代码如下:

<code class="go">body := &bytes.Buffer{}
writer := multipart.NewWriter(body)

part, _ := writer.CreatePart(textproto.MIMEHeader{
    "Content-Type": {"application/json"},
})
part.Write(jsonStr)

writer.Close()

req, _ := http.NewRequest("POST", "http://1.1.1.1/blabla", body)
req.Header.Set(
    "Content-Type",
    "multipart/mixed; boundary="+writer.Boundary(),
)</code>

通过为包含JSON数据的部分设置Content-Type: application/json,我们确保服务器可以正确解释请求。边界参数也被适当设置以匹配预期的格式。

以上是如何在 Go 中为多部分 POST 请求设置正确的内容类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

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