Maison > Article > développement back-end > Le client HTTP par défaut de GoLang réessaye-t-il automatiquement les requêtes lorsque le serveur est indisponible ?
Réessai automatique dans les requêtes HTTP
Question :
Dans GoLang, en essayant de pousser données vers un serveur Apache, le serveur peut être temporairement indisponible. La requête HTTP réessayera-t-elle automatiquement dans un tel scénario ?
Réponse :
Non, le client HTTP par défaut dans GoLang ne réessaye pas automatiquement les requêtes HTTP.
Mise en œuvre de la méthode de nouvelle tentative :
Pour implémenter un mécanisme de nouvelle tentative personnalisé, considérez le exemple suivant :
<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>
Ce code démontre un mécanisme de nouvelle tentative de base, permettant un maximum de trois tentatives avant d'échouer. La requête HTTP est émise à plusieurs reprises jusqu'à ce qu'elle réussisse ou que le nombre de tentatives spécifié soit épuisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!