亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法推遲關閉請求正文

無法推遲關閉請求正文

Go
汪汪一只貓 2023-07-31 15:14:01
知道為什么我無法關閉請求正文嗎?請求正在返回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 方法。


查看完整回答
反對 回復 2023-07-31
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

req是一個 GET 請求。它沒有身體,所以req.Body為零。這就是為什么你會得到一個零指針取消引用。不要關閉req.Body



查看完整回答
反對 回復 2023-07-31
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號