知道為什么我無法關閉請求正文嗎?請求正在返回200并且沒有錯誤,但req.Body.Close()拋出運行時錯誤:無效的內存地址或 nil 指針取消引用clientHttp := &http.Client{}req, err := http.NewRequest("GET", "https://example.com/item/"+strconv.FormatInt(itemID, 10), nil) if err != nil { logrus.Error(err) return models.Company{}, err }resp, err := clientHttp.Do(req) if err != nil { logrus.Error(err) return models.Company{}, err }defer req.Body.Close() // <- panic!
2 回答

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
應用程序應該關閉響應正文,而不是請求正文:
defer?resp.Body.Close()
該req.Body
字段從最后一個參數設置為http.NewRequest
。該req.Body
字段為零,因為最后一個參數http.NewRequest
為零。
根據Request.Body的文檔,傳輸關閉請求正文(如果它不為零)?:
對于客戶端請求,nil body 意味著該請求沒有 body,例如 GET 請求。HTTP 客戶端的 Transport 負責調用 Close 方法。
- 2 回答
- 0 關注
- 161 瀏覽
添加回答
舉報
0/150
提交
取消