如何向HTTP.Request添加额外的标头以跟踪问题

时间:2019-03-27 08:24:51

标签: go http.client

在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?

1 个答案:

答案 0 :(得分:0)

您应该使用标题。

您可以这样做:

r.Header.Add("trace-id", "yourid")

您还可以使用开放源码包,例如opentracing,它遵循开放跟踪约定,并具有从请求中添加和读取跟踪信息的方法:https://github.com/opentracing/opentracing-go