Avatar ·

Comment définir un timeout pour http.Get() en Golang ?

Bonjour à tous ! Je suis débutant en Go et j'ai rencontré un problème lors de l'exécution de requêtes HTTP. Je dois envoyer des requêtes GET à une API externe, mais parfois le serveur se bloque ou répond très lentement. Dans l'exemple standard de la documentation, j'utilise `http.Get()`, et il reste bloqué indéfiniment, bloquant tout le programme. Voici mon code : ```go resp, err := http.Get("https://api.example.com/data") if err != nil { log.Fatal(err) } defer resp.Body.Close() ``` Le problème est que si le serveur ne répond pas, le programme se bloque pour toujours. Je veux définir un timeout, par exemple 5 secondes, pour qu'en l'absence de réponse, le programme génère une erreur et continue son exécution. J'ai essayé de chercher dans la documentation, mais je n'ai pas trouvé de moyen simple d'ajouter un timeout à `http.Get()`. J'ai vu quelque chose à propos de `http.Client`, mais je n'ai pas compris comment l'appliquer correctement. Pouvez-vous me dire comment implémenter correctement un timeout pour les requêtes HTTP en Go ? Dois-je créer un client séparé ou existe-t-il un moyen de passer un timeout directement dans `Get()` ? Je suis également intéressé