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
Mary-Kate Olsenoriginal
2024-11-29 09:01:09277parcourir

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)

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