遇到这样一个问题 req, err = http.NewRequest("GET", "http://x.x.x.x:80/", nil) req.Header.Set("Host", "example.com") 这样的http客户端,我抓到的报文里面,看到http头部的host字段居然还是x.x.x.x:80, 求大神指点
有疑问加站长微信联系(非本文作者)

遇到这样一个问题 req, err = http.NewRequest("GET", "http://x.x.x.x:80/", nil) req.Header.Set("Host", "example.com") 这样的http客户端,我抓到的报文里面,看到http头部的host字段居然还是x.x.x.x:80, 求大神指点
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
example.com又不是你家的,你这是要当作参数传递过去吗
我只是举个例子,真实的name不是这个
只要你的域名和ip绑定了的话肯定是可以的,req, err = http.NewRequest("GET", "http://x.x.x.x:80/", nil),这是XXXX换成域名就可以了,没有域名解析的话,修改一下自己电脑的host的文件。是要做cookies共享吗
其实是想绕过DNS解析,直接指定IP来访问域名,结果因为Host字段不是name, 被这个域名的前端代理拦住了,返回的是403 forbidden, 使用req.Header.Set又没起作用
应该这么复制Req.Host="XXXX"。 详见:http://www.cnblogs.com/jinsdu/p/5161962.html
嗯,在net/http的doc里面看到type Request有Host这个成员,试了一把确实解决了问题
Req.Host="XXXX" 确定这样能修改吗,我这么修改之后,抓包的看到的请求的x.x.x.x:80也变成了域名