Détermination de la réutilisabilité du corps de la requête dans les gestionnaires de middleware HTTP
Dans ce scénario, le problème se pose lorsque vous essayez de réutiliser une méthode dans une autre dans un Go -chi routeur HTTP. Le gestionnaire externe, Registration(), lit le corps de la requête à l'aide de ioutil.ReadAll(r.Body), ne laissant aucune donnée disponible pour le gestionnaire interne, Create(), à partir duquel analyser JSON.
Solution : Restauration du corps de la requête
Pour résoudre ce problème, implémentez le correctif suivant :
func Registration(w http.ResponseWriter, r *http.Request) { b, err := io.ReadAll(r.Body) // ...other code r.Body = io.NopCloser(bytes.NewReader(b)) user.Create(w, r) }
Voici comment ce code résout le problème :
De cette façon , le gestionnaire interne peut accéder aux données JSON à partir du corps de la requête sans rencontrer l'erreur « fin inattendue de l'entrée JSON ».
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!