【发布时间】:2019-01-08 09:20:21
【问题描述】:
我知道我可以使用手动向每个 HTTP 请求添加标头
cli := &http.Client{}
req, err := http.NewRequest("GET", "https://myhost", nil)
req.Header.Add("X-Test", "true")
if err != nil {
panic(err)
}
rsp, err := cli.Do(req)
但我想为我的应用程序中的每个 HTTP 请求自动添加此标头。
最好的方法是什么?
【问题讨论】:
-
为什么不简单地把它包装成一个函数来发出请求呢?
-
包装可以工作,只要你是直接使用它的人。但是一旦你不得不将一个客户端交给另一个以自己的方式使用它的库,包装就不够了。
-
当然,我可以用自定义函数包装
client.Do以附加标头,但client.Get和client.Post看起来比client.NewRequest更简洁,错误检查,然后是myDo函数。跨度>
标签: go http-headers go-http