Dans un programme qui télécharge un fichier à partir d'un serveur et le renvoie à l'utilisateur, il est crucial de maintenir l'intégrité de la connexion. Lorsque l'utilisateur arrête le téléchargement ou met fin à la connexion, la connexion GET doit également être interrompue. Cependant, comme l'observent les graphiques d'utilisation, cela ne se produit pas.
Pour résoudre ce problème, il est essentiel de fermer le corps de la requête en toutes circonstances. Voici comment procéder :
<code class="go">resp, httpErr := http.Get(url.String()) if httpErr != nil { // Handle error return } // If there's no error, defer the call for closing the body defer resp.Body.Close()</code>
Différer la fermeture du Body garantit qu'il sera exécuté même lorsqu'une erreur survient. De plus, io.Copy fournit des informations sur le succès de l'opération de copie. Vous pouvez le vérifier en utilisant le code suivant :
<code class="go">written, err := io.Copy(w, resp.Body) if err != nil { // Copy did not succeed }</code>
En fermant la connexion correctement et en vérifiant le résultat de io.Copy, vous pouvez vous assurer que la connexion HTTP est terminée lorsque l'utilisateur ferme le téléchargement ou la connexion. .
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!