我看过几个例子,你从r.Body
读取,然后立即推迟r.Body.Close()
。如果我们不关闭它会发生什么?
假设我有一个http.Handler
,我在里面解码r.Body的内容是这样的:
func createFeedback(w http.ResponseWriter, r *http.Request) {
// ... Some code ...
f := feedback.New()
if err := json.NewDecoder(r.Body).Decode(f); err != nil {
return err
}
defer r.Body.Close()
// ... Some more code ...
}
为什么我们要关闭r.Body
?