前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >golang的http请求设置无法设置header里的Host

golang的http请求设置无法设置header里的Host

原创
作者头像
蒙古上单2
发布2021-04-12 11:28:56
2.5K0
发布2021-04-12 11:28:56
举报
文章被收录于专栏:第二蒙古上单

一般我们使用go的http发送请求时,都是如下的形式设置header的:

代码语言:javascript
复制
client := &http.Client{}
httpReq := http.NewRequest("GET", "http://127.0.0.1", nil)
httpReq.Header.Add("Content-type", "application/json")

所以想当然的认为,设置Host参数就应该是:

代码语言:javascript
复制
httpReq.Header.Add("Host", "www.example.com")

或者是

代码语言:javascript
复制
httpReq.Header.Set("Host", "www.example.com")

结果就是nginx死活都是报403错误。排查了一轮,发现nginx接收到的请求里的Host参数是127.0.0.1而不是我设置的www.example.com。

经过大佬指点,原来设置Host参数要这样:

代码语言:javascript
复制
httpReq.Host = "www.example.com"

这很让人迷惑,为啥就不允许通过Header.Set来设置呢?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档