gpt4 book ai didi

json - `json.NewDecoder.Decode`失败时如何保存响应体?

转载 作者:数据小太阳 更新时间:2023-10-29 03:05:29 25 4
gpt4 key购买 nike

这段代码的要点在 Go 中似乎很常见:

if err := json.NewDecoder(r.Body).Decode(&mr); err != nil {
return mr, err
}

但如果发生错误,我如何实际检索 r.Body 的字符串表示形式?在这种情况下,最好将其包含在错误日志中,而不是仅仅通过结构来发现 Zip 有时是一个字符串,有时是一个整数。

不幸的是,主体此时已经关闭,所以我不确定如何再次访问它。

抢先将主体解码为字符串,然后对其进行编码并尝试结构映射似乎是一个额外的步骤。有没有更好的办法?

最佳答案

如果要保存正文,则在解码之前先保存正文。

//...
body, err := ioutil.ReadAll(r.Body)
if err != nil {
return err
}

err = json.Unmarshal(body, &mr)
//...

关于json - `json.NewDecoder.Decode`失败时如何保存响应体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40983193/

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