Heim  >  Artikel  >  Backend-Entwicklung  >  Wiederholt der Standard-HTTP-Client von GoLang automatisch Anfragen, wenn der Server nicht verfügbar ist?

Wiederholt der Standard-HTTP-Client von GoLang automatisch Anfragen, wenn der Server nicht verfügbar ist?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 22:48:03320Durchsuche

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

Automatischer Wiederholungsversuch bei HTTP-Anfragen

Frage:

In GoLang beim Push-Versuch Wenn Sie Daten an einen Apache-Server senden, ist der Server möglicherweise vorübergehend nicht verfügbar. Wird die HTTP-Anfrage in einem solchen Szenario automatisch wiederholt?

Antwort:

Nein, der Standard-HTTP-Client in GoLang wiederholt HTTP-Anfragen nicht automatisch.

Implementierung der Wiederholungsmethode:

Um einen benutzerdefinierten Wiederholungsmechanismus zu implementieren, betrachten Sie das folgende Beispiel:

<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>

Dieser Code demonstriert einen grundlegenden Wiederholungsmechanismus, der Folgendes berücksichtigt Es sind maximal drei Wiederholungsversuche erforderlich, bevor ein Fehler auftritt. Die HTTP-Anfrage wird wiederholt ausgegeben, bis sie erfolgreich ist oder die angegebene Anzahl von Wiederholungsversuchen erreicht ist.

Das obige ist der detaillierte Inhalt vonWiederholt der Standard-HTTP-Client von GoLang automatisch Anfragen, wenn der Server nicht verfügbar ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn