Contrôle de la redirection des requêtes et bonnes pratiques pour http.Transport en langage Go
1 Introduction
Lorsque nous utilisons le langage Go pour les requêtes réseau ou le développement de services HTTP, nous rencontrons souvent la redirection de requêtes. Par défaut, http.Transport dans la bibliothèque standard Go gère automatiquement la redirection des requêtes, mais nous devons parfois personnaliser le comportement de redirection pour répondre à des besoins particuliers. Cet article explique comment utiliser http.Transport pour contrôler la redirection et fournit quelques bonnes pratiques pour votre référence.
2. Contrôle de redirection de http.Transport
func(req *http.Request, via []*http.Request) error
où req est l'objet de requête actuel et via toutes les requêtes de redirection qui ont réussi.
Nous pouvons décider de continuer à suivre la redirection en vérifiant le code d'état de la demande en cours, le nombre de sauts et d'autres informations. Si vous souhaitez mettre fin aux redirections suivantes, renvoyez simplement une erreur non vide.
Ce qui suit est un exemple. La fonction CheckRedirect dans le code contrôle la limite du nombre de sauts ne dépassant pas 3 fois :
package main import ( "net/http" "fmt" ) func main() { client := &http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { if len(via) >= 3 { return fmt.Errorf("stopped after %d redirects", len(via)) } return nil }, } resp, err := client.Get("http://example.com") // 发送一个GET请求 if err != nil { fmt.Println("请求发生错误:", err) return } defer resp.Body.Close() fmt.Println("响应码:", resp.StatusCode) }
Dans l'exemple de code ci-dessus, lorsque le nombre de sauts atteint 3 fois, la fonction CheckRedirect renvoie un erreur non nulle, indiquant que la redirection ne sera plus suivie. De cette façon, nous pouvons contrôler de manière flexible le nombre de sauts pour éviter des sauts infinis.
3. Meilleures pratiques
Dans les projets réels, nous devons prêter attention aux points suivants lorsque nous utilisons http.Transport pour effectuer des requêtes réseau :
4. Résumé
Cet article explique comment utiliser http.Transport pour contrôler la redirection des requêtes et donne quelques bonnes pratiques pour votre référence. J'espère que cet article pourra aider tout le monde à mieux comprendre et utiliser http.Transport en langage Go. Dans les projets réels, nous devrions raisonnablement définir la fonction CheckRedirect pour répondre à des besoins particuliers en fonction de besoins spécifiques, et prêter attention à la sécurité et à d'autres considérations.
Ce qui précède est une introduction au contrôle de redirection des demandes et aux meilleures pratiques de http.Transport en langage Go. J'espère que cela sera utile à tout le monde. Merci d'avoir lu!
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!