Maison > développement back-end > Golang > Comment corriger « Erreur EOF » lors du décodage XML à partir du corps de réponse HTML dans Golang ?

Comment corriger « Erreur EOF » lors du décodage XML à partir du corps de réponse HTML dans Golang ?

Barbara Streisand
Libérer: 2024-11-01 20:14:02
original
228 Les gens l'ont consulté

How to Fix

Erreur : xml.NewDecoder(resp.Body).Decode donnant une erreur EOF dans Golang

Lors de la tentative de décodage XML à partir d'une réponse HTML body, vous pouvez rencontrer une erreur EOF lors de l'utilisation de xml.NewDecoder(resp.Body).Decode(&v). Cela se produit lorsque le contenu du corps a déjà été lu une fois.

Solution

La clé pour résoudre ce problème réside dans la compréhension de la nature du contenu du corps. Dans le code fourni, le contenu du corps est d'abord lu et stocké dans une variable chaîne à l'aide de ioutil.ReadAll (resp1.Body). Cependant, une fois le contenu lu, il ne peut pas être relu par une autre fonction, telle que xml.NewDecoder(resp1.Body).Decode(&v). Cela entraîne l'erreur EOF.

La solution la plus pratique consiste à utiliser le contenu du corps plusieurs fois. Une façon d'y parvenir consiste à utiliser la fonction xml.Unmarshal, qui vous permet de décoder le XML à partir d'un tableau d'octets. Par conséquent, au lieu d'utiliser xml.NewDecoder(resp1.Body).Decode(&v), vous pouvez utiliser le code suivant :

<code class="go">err = xml.Unmarshal([]byte(conts1), &v)
if err != nil {
    fmt.Printf("error is here: %v", err)
    return
}</code>
Copier après la connexion

Cette approche vous permet de lire et de décoder le contenu du corps plusieurs fois sans rencontrer l'erreur EOF.

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!

source:php.cn
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