$Id: 205
$SOId: 801000d0
Package net/http has a layered design where each layer is a convenience wrapper on top of a lower layer.
Each lower layer is more complex but offers more control.
Here’s a recap of 3 ways of doing an HTTP GET request.
http.Get() functionUsing top-level http.Get() function is the simplest but not recommended due to lack of timeouts.
http.Client.Get() method*http.Client with &http.Client{}TimeoutGet() or Post() or PostForm() methodshttp.Client.Do() methodThis allows the greatest control over the request.
http.Client and set apropriate Timeout*http.Request with http.NewRequestMethod to "GET", "POST", "HEAD", "PUT" or "DELETE"User-Agentwith Header.Set(key, value string)Body of type io.ReadCloserTransferEncoding