这个片段的要点在Go:
中似乎相当普遍if err := json.NewDecoder(r.Body).Decode(&mr); err != nil {
return mr, err
}
但是如果出现错误,我如何实际检索r.Body
的字符串表示?在这种情况下,将此包含在错误日志中是有利的,而不是仅通过结构来查找Zip有时是字符串,有时是整数。
不幸的是,此时身体已经关闭,所以我不知道如何再次访问它。
抢先将主体解码为字符串,然后对其进行编码并尝试结构映射似乎是一个额外的步骤。还有更好的方法吗?
答案 0 :(得分:2)
如果要保存正文,请在解组之前保存正文。
//...
body, err := ioutil.ReadAll(r.Body)
if err != nil {
return err
}
err = json.Unmarshal(body, &mr)
//...