HTTP 要求中自動重試
問題:
問題:在GoLang 中,嘗試推Go時資料傳輸到Apache 伺服器時,該伺服器可能暫時無法使用。這種情況下 HTTP 請求會自動重試嗎?
答案:不會,GoLang 中預設的 HTTP 用戶端不會自動重試 HTTP 請求。
重試方法的實作:<code class="go">package main import ( "fmt" "io/ioutil" "log" "net/http" ) func main() { var ( err error response *http.Response retries int = 3 ) for retries > 0 { response, err = http.Get("https://non-existent") if err != nil { log.Println(err) retries -= 1 } else { break } } if response != nil { defer response.Body.Close() data, err := ioutil.ReadAll(response.Body) if err != nil { log.Fatal(err) } fmt.Printf("data = %s\n", data) } }</code>要實現自訂重試機制,請考慮以下範例:此程式碼示範了基本的重試機制,允許失敗前最多重試3 次。重複發出HTTP請求,直到成功或達到指定的重試次數。
以上是當伺服器不可用時,GoLang 的預設 HTTP 用戶端是否會自動重試請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!