package main import ( "fmt" "net/http" ) func main() { headers := map[string]string{ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", "Content-Type": "application/json", } req, err := http.NewRequest("GET", "https://google.com", nil) if err != nil { fmt.Println("Error creating request.", err) return } for key, value := range headers { req.Header.Set(key, value) } client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println("Error sending request.", err) return } defer resp.Body.Close() fmt.Println("HTTP Status Code:", resp.StatusCode) }
package main import ( "fmt" "io/ioutil" "net/http" ) func main() { headers := map[string]string{ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)", "Content-Type": "application/json", } req, err := http.NewRequest("GET", "https://google.com", nil) if err != nil { fmt.Println("Error creating request.", err) return } for key, value := range headers { req.Header.Set(key, value) } client := &http.Client{} resp, err := client.Do(req) if err != nil { fmt.Println("Error sending request.", err) return } defer resp.Body.Close() for key, values := range resp.Header { for _, value := range values { fmt.Printf("%v: %v\n", key, value) } } body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("Error reading response body.", err) return } fmt.Println(string(body)) }Both examples use the net/http package to set and read HTTP request headers.