一般我们使用go的http发送请求时,都是如下的形式设置header的:
client := &http.Client{}
httpReq := http.NewRequest("GET", "http://127.0.0.1", nil)
httpReq.Header.Add("Content-type", "application/json")
所以想当然的认为,设置Host参数就应该是:
httpReq.Header.Add("Host", "www.example.com")
或者是
httpReq.Header.Set("Host", "www.example.com")
结果就是nginx死活都是报403错误。排查了一轮,发现nginx接收到的请求里的Host参数是127.0.0.1而不是我设置的www.example.com。
经过大佬指点,原来设置Host参数要这样:
httpReq.Host = "www.example.com"
这很让人迷惑,为啥就不允许通过Header.Set来设置呢?
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。