Cuba Semula Automatik dalam Permintaan HTTP
Soalan:
Dalam GoLang, semasa cuba menolak data ke pelayan Apache, pelayan mungkin tidak tersedia buat sementara waktu. Adakah permintaan HTTP akan mencuba semula secara automatik dalam senario sedemikian?
Jawapan:
Tidak, klien HTTP lalai dalam GoLang tidak mencuba semula permintaan HTTP secara automatik.
Pelaksanaan Kaedah Cuba Semula:
Untuk melaksanakan mekanisme cuba semula tersuai, pertimbangkan contoh berikut:
<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>
Kod ini menunjukkan mekanisme percubaan semula asas, membenarkan maksimum tiga percubaan semula sebelum gagal. Permintaan HTTP berulang kali dikeluarkan sehingga ia berjaya atau bilangan percubaan semula yang ditentukan telah habis.
Atas ialah kandungan terperinci Adakah klien HTTP lalai GoLang secara automatik mencuba semula permintaan apabila pelayan tidak tersedia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!