Do an HTTP GET Request in Go

net/http provides a couple of ways to do HTTP GET requests.

  1. http.Get

    http.Get(
        "https://howtoxiny.org/en/docs/contributing/?query=value&filter=other",
    )
    
  2. http.NewRequest

    request, err := http.NewRequest(
        "GET",
        "https://howtoxiny.org/en/docs/contributing/?query=value&filter=other",
    )
    if err != nil {
        log.Fatal(err)
    }
    
    request.Header.Set("User-Agent", "agent/0.0.1")
    request.Header.Set("Accept", "*/*")
    
    http.DefaultClient.Do(request)
    
  3. http.Request

    parsedURL, err := url.Parse(
        "https://howtoxiny.org/en/docs/contributing/?query=value&filter=other",
    )
    if err != nil {
        log.Fatal(err)
    }
    
    request := http.Request{
        Method: "GET",
        URL:    parsedURL,
        Header: map[string][]string{
            "Accept":       {"*/*"},
            "User-Agent":   {"agent/0.0.1"},
        },
    }
    
    http.DefaultClient.Do(&request)
    

References

aka