在golang中,http.client
似乎没有钩子方法,因此我想知道如何在框架中添加trace-id: xxx
之类的额外标头。
理想的代码如下:
// this func add a hook method to http-client to rewrite header
client := buildWithRewriteHeaderHook()
//customRequest has no `trace-id`
client.Do(customRequest)
// remote server get trace-id from http headers
...
PS:我知道如何通过'req.setHeader()'向请求添加标头,并且我认为这不是重复的问题。 How to set headers in http get request?
答案 0 :(得分:0)
您应该使用标题。
您可以这样做:
r.Header.Add("trace-id", "yourid")
您还可以使用开放源码包,例如opentracing,它遵循开放跟踪约定,并具有从请求中添加和读取跟踪信息的方法:https://github.com/opentracing/opentracing-go