Maison > Article > développement back-end > 'Le corps json ne peut pas être décodé : EOF' après avoir essayé de lire le corps de la requête
Dans le développement PHP, nous rencontrons souvent divers problèmes et erreurs. L'un des problèmes courants est l'erreur « Le corps json ne peut pas être décodé : EOF » lors de la tentative de lecture du corps de la requête. Ce message d'erreur signifie qu'une fin de fichier inattendue a été rencontrée lors du décodage du corps de la requête JSON. En règle générale, ce problème peut être résolu par un simple débogage et dépannage. Dans cet article, nous discuterons des causes possibles de ce problème et proposerons quelques solutions pour vous aider à résoudre cette erreur.
J'ai écrit un middleware d'enregistrement qui stocke les informations de requête graphql entrantes. Le problème est que si j'essaie de lire le corps de la requête, j'obtiens les 400 mauvaises requêtes suivantes :
{ "errors": [ { "message": "json body could not be decoded: eof" } ], "data": null }
Mon code :
clonedReq := r.Clone(ctx) data, _ := io.ReadAll(clonedReq.Body) // store the data... fmt.Println(string(data))
Les données sont affichées, mais j'obtiens ensuite une erreur eof. Si je commente cette partie, la demande reçoit une réponse sans aucun problème.
Le problème reste de savoir si vous utilisez ou non clone
pour demander une copie complète.
Le middleware lit le corps de la requête dans eof. Le gestionnaire a rencontré eof. Le contenu du corps de la requête n'est pas cloné dans clone().
Pour corriger le code, restaurez le corps de la requête dans le middleware :
data, _ := io.ReadAll(r.Body) r.Body = io.NopCloser(bytes.NewReader(data))
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!