Use Request.Header to access all headers. Because Header is a map[string][]string, two loops are required to access all headers.
// Loop over header names
for name, values := range r.Header {
// Loop over all values for the name.
for _, value := range values {
fmt.Println(name, value)
}
}