gpt4 book ai didi

go - 错误 : EOF for reading XML body of Post request

转载 作者:IT王子 更新时间:2023-10-29 01:03:14 26 4
gpt4 key购买 nike

当我读取 XML 响应正文时,我在控制台上收到 error: EOF

下面是我的代码。

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 没有按预期工作。

是否有引发此错误的原因?

最佳答案

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

您可以在“xml.NewDecoder(resp.Body).Decode Giving EOF Error”中看到相同的错误

首先读取resp.Body,然后将字符串与xml.Unmarshal 一起使用将避免重复读取和错误消息。

注意:一个similar answer显示最佳实践仍然是在从流读取时使用 xml.Decoder 而不是 xml.Unmarshal
所以请确保您没有阅读 resp.Body 两次,它会起作用。

关于go - 错误 : EOF for reading XML body of Post request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com