title: How can I add extra headers to http.Request for tracing issues
body: <p>In golang, it seems no hook methods exist for <code>http.client</code>, so I'm wondering how can I add extra headers like <code>trace-id: xxx</code> in framework.</p>
  
  <p>Ideal code is like below:</p>
  
  <pre class="lang-golang prettyprint-override"><code>// 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
  ...
  
  </code></pre>
  
  <p>PS: I know how to add headers to a request by 'req.setHeader()', and in my opinion it's not a duplicate question to this one.  <a href="https://stackoverflow.com/questions/12864302/how-to-set-headers-in-http-get-request">How to set headers in http get request?</a></p>