dongqiao8502 2014-07-24 23:45
浏览 127
已采纳

将未更改的小写标头添加到golang http请求

I am trying to set all-lowercase headers in a golang program and CanonicalMIMEHeaderKey is uppercasing the first letter. The API I am consuming only takes this particular header in all-lowercase at the moment. It's not an option to change that at this point in time. Is there a way to override that?

http://golang.org/pkg/net/textproto/#CanonicalMIMEHeaderKey

So for example, the header I want to add is:

req.Header.Add("myheader", "myheadervalue")

But it comes out as:

req.Header.Add("Myheader", "myheadervalue")

Can anyone help please?

Thanks

  • 写回答

3条回答 默认 最新

  • duanmei1922 2014-07-25 00:04
    关注

    I do not see a way to circumvent this but if you really have to use lower-case header names, then you can work around this by creating your own http.Header with lower-case keys. Example (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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器