Thanks, I have found that the defaultClient adds Accepts Encoding gzip by default to the request which was preventing the response returning a Content Length if I use a new client with:
client := &http.Client{
Transport: &http.Transport{
Proxy: http.ProxyFromEnvironment,
Dial: (&net.Dialer{
Timeout: 30 * time.Second,
KeepAlive: 30 * time.Second,
}).Dial,
TLSHandshakeTimeout: 10 * time.Second,
DisableCompression: true,
}}
The DisableCompression: true stops it from adding the Accepts Encoding header and so I do get back a Content Length now