As in many golang net/http
articles, a request returns two values: response and error:
resp, err := http.Get("http://example.com/")
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
For http-related errors, it will be returned in resp
with status code like 502, 400 etc. What are the possible errors returned? I need to know them before I can handle them.
and so on
You can read the source code in http package. Then you can find all the errors returned by this function http.Get
.
Those errors will mostly network related errors, like network timeouts etc. There is no need to handle them differently. You may exit gracefully like,
resp, err := http.Get("http://google.com/")
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
there are many error responses like :-
301 (Moved Permanently)
302 (Found)
303 (See Other)
307 (Temporary Redirect)
better you go and read http.Get