Golang HTTP响应错误可能是什么?

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.

  1. URL parse error
  2. too much redirect times
  3. tcp connect\writeead timeout
  4. 302 status, but null Location header

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