为了账号安全,请及时绑定邮箱和手机立即绑定

错误:用于读取 Post 请求的 XML 正文的 EOF

错误:用于读取 Post 请求的 XML 正文的 EOF

Go
喵喔喔 2021-08-23 15:51:48
error: EOF当我阅读 XML 响应正文时,我正在进入控制台。下面是我的代码。resp, err := http.Post(url, "application/xml", payload)if err != nil {    response.WriteErrorString(http.StatusInternalServerError, err.Error())    return}defer resp.Body.Close()dec := xml.NewDecoder(resp.Body)if debug == true {    body, err := ioutil.ReadAll(resp.Body)    fmt.Println("=========== Response ==================")    if err != nil {        fmt.Printf("error: %v", err)        return    }    fmt.Println(string(body))    fmt.Println("=========== Response Ends =============")}err = dec.Decode(respStruct)我怀疑ioutil.ReadAll没有按预期工作。是否有原因引发此错误?
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

xml.NewDecoder(resp.Body)可能已经阅读了 resp.Body 的内容。
因此EOF消息。

你可以在“ xml.NewDecoder(resp.Body).DecodeGiving EOFError ”中看到同样的错误

读取第resp.Body一个,并使用字符串 withxml.Unmarshal将避免双重读取和错误消息。

注意:类似的答案表明最佳实践仍然是使用xml.Decoder而不是xml.Unmarshal从流中读取。
因此,请确保您不要阅读resp.Body两次,它会起作用。


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 443 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信