Maison > développement back-end > Golang > Comment puis-je fermer prématurément les requêtes POST du client HTTP Go ?

Comment puis-je fermer prématurément les requêtes POST du client HTTP Go ?

Mary-Kate Olsen
Libérer: 2024-11-29 09:01:09
original
379 Les gens l'ont consulté

How Can I Prematurely Close Go HTTP Client POST Requests?

Fermeture prématurée des requêtes POST du client HTTP Go

Lorsque vous travaillez avec des sondages longs HTTP à l'aide du http.Client, il peut être nécessaire de mettre fin prématurément à la requête à partir du côté client. Historiquement, resp.Body.Close() pouvait être utilisé, mais son exécution nécessitait une goroutine distincte.

Solution actuelle : annulation basée sur le contexte

Pour résoudre ce problème problème, Go recommande désormais d'utiliser http.Request.WithContext pour transmettre un contexte avec une date limite ou un mécanisme d'annulation. Cela élimine le besoin d'une goroutine supplémentaire et fournit une approche plus propre et standardisée.

Exemple

req, err := http.NewRequest("GET", "http://example.com", nil)
req = req.WithContext(ctx) // Pass the context with deadline or cancelation mechanism
resp, err := client.Do(req)
Copier après la connexion

Cette approche offre un meilleur contrôle sur l'annulation des demandes, lui permettant de être déclenché en fonction des actions de l'utilisateur ou d'une autre logique d'application, pas seulement des délais d'attente.

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!

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