我正在尝试在 golang 程序中设置全小写标题,而 CanonicalMIMEHeaderKey 将第一个字母大写。我正在使用的 API 目前只采用全小写的这个特定 header 。目前无法更改它。有没有办法覆盖它?
http://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey
例如,我要添加的 header 是:
req.Header.Add("myheader", "myheadervalue")
但结果是:
req.Header.Add("Myheader", "myheadervalue")
有人可以帮忙吗?
谢谢
最佳答案
我没有找到规避这个问题的方法,但是如果你真的必须使用小写的 header 名称,那么你可以通过使用小写键创建你自己的 http.Header
来解决这个问题.示例 ( on play ):
import "fmt"
import "strings"
import "net/http"
// ...
req, _ := http.NewRequest("GET", "http://foo", nil)
req.Header.Add("myheader", "myheadervalue")
lowerCaseHeader := make(http.Header)
for key, value := range req.Header {
lowerCaseHeader[strings.ToLower(key)] = value
}
req.Header = lowerCaseHeader
关于go - 将未更改的小写 header 添加到 golang http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24945806/