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

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

如何在 Golang 中復制 http.Get(url) 請求的響應

如何在 Golang 中復制 http.Get(url) 請求的響應

Go
慕蓋茨4494581 2021-12-07 16:08:34
我正在嘗試使用resp, err := http.Get(url)命令將響應寫入文件,并使用相同的響應來提取鏈接。在我使用 將內容寫入文件后resp.Write(f),我不能resp.Body在不發出另一個http.Get請求的情況下將其用于其他目的(用于來自上述 url 的響應)。我試過了resp2 := bytes.NewBuffer(resp)。它給出了錯誤,因為類型不匹配。我也試過復制。
查看完整描述

2 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

假設響應適合內存,只需創建一個緩沖區并使用resp.Write,例如(未經測試,基本正確):


var b bytes.Buffer

if err := resp.Write(b); err != nil {

   // handle error

} else {

    // Do something with buffer

}

對于適用于任何閱讀器的代碼,請使用:ioutil.ReadAll,它返回一個新的 []byte ,其中包含您可以包裝在 bytes.Buffer 中的數據


查看完整回答
反對 回復 2021-12-07
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

httputil 有一個響應轉儲。https://golang.org/pkg/net/http/httputil/#DumpRequest 它將用內存副本替換正文,以便您可以重用它。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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