首页  >  文章  >  后端开发  >  在 Golang 中从 HTML 响应正文解码 XML 时如何修复“EOF 错误”?

在 Golang 中从 HTML 响应正文解码 XML 时如何修复“EOF 错误”?

Barbara Streisand
Barbara Streisand原创
2024-11-01 20:14:02131浏览

How to Fix

错误:xml.NewDecoder(resp.Body).Decode 在 Golang 中给出 EOF 错误

尝试从 HTML 响应中解码 XML 时body,使用 xml.NewDecoder(resp.Body).Decode(&v) 时可能会遇到 EOF 错误。当正文内容已被读取一次时,就会发生这种情况。

解决方案

解决此问题的关键在于理解正文内容的本质。在提供的代码中,首先使用ioutil.ReadAll(resp1.Body)读取正文内容并将其存储在字符串变量中。但是,一旦内容被读取,就不能被其他函数再次读取,例如 xml.NewDecoder(resp1.Body).Decode(&v)。这会导致 EOF 错误。

最方便的解决方案是多次使用正文内容。实现此目的的一种方法是通过 xml.Unmarshal 函数,该函数允许您从字节数组中解码 XML。因此,您可以使用以下代码代替 xml.NewDecoder(resp1.Body).Decode(&v):

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

这种方法允许您多次读取和解码正文内容,而不会遇到EOF 错误。

以上是在 Golang 中从 HTML 响应正文解码 XML 时如何修复“EOF 错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn