Mécanisme de nouvelle tentative de requête HTTP
Q : J'essaie de transmettre des données à un serveur Apache à l'aide de Go. Si le serveur Apache subit un arrêt temporaire, ma requête HTTP réessayera-t-elle automatiquement ?
R : Non, les requêtes HTTP ne réessayent pas automatiquement en cas de panne du serveur.
Logique de nouvelle tentative personnalisée
Pour implémenter des tentatives automatiques, vous devez créer votre propre mécanisme de nouvelle tentative. Une implémentation de base est disponible sur le lien suivant :
[Exemple de fonction Go Retry](https://play.golang.org/p/_o5AgePDEXq)
<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>
Dans cet exemple, un mécanisme de nouvelle tentative personnalisé est implémenté à l'aide d'une boucle qui tente une requête HTTP plusieurs fois avant d'échouer. Vous pouvez ajuster le nombre de tentatives et la logique pour déterminer s'il faut réessayer en fonction des besoins spécifiques de votre application.
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!