HTTP 請求重試機制
問:我正在嘗試使用 Go 將資料推送到 Apache 伺服器。如果 Apache 伺服器暫時關閉,我的 HTTP 請求會自動重試嗎?
答:不會,HTTP 請求本身不會在伺服器中斷時重試。
自訂重試邏輯
要實現自動重試,您需要建立自己的重試機制。以下連結提供了基本的實作:
[Go 重試函數範例](https://play.golang.org/p/_o5AgePDEXq)
<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>
在此範例中,自訂重試機制是使用循環來實現的,該循環在失敗之前多次嘗試HTTP 請求。您可以根據應用程式的具體需求調整重試次數以及判斷是否重試的邏輯。
以上是HTTP 請求會在伺服器中斷時自動重試嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!