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 ?

Le client HTTP par défaut de GoLang réessaye-t-il automatiquement les requêtes lorsque le serveur est indisponible ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 22:48:03321parcourir

Does GoLang's default HTTP client automatically retry requests when the server is unavailable?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn