Maison > développement back-end > Golang > 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
Libérer: 2024-11-03 22:48:03
original
381 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal