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).Decode
Giving EOF
Error ”中看到同样的错误
读取第resp.Body
一个,并使用字符串 withxml.Unmarshal
将避免双重读取和错误消息。
注意:类似的答案表明最佳实践仍然是使用xml.Decoder
而不是xml.Unmarshal
从流中读取。
因此,请确保您不要阅读resp.Body
两次,它会起作用。
- 1 回答
- 0 关注
- 443 浏览
添加回答
举报
0/150
提交
取消