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

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

如何在 golang 中緩存 http.Response?

如何在 golang 中緩存 http.Response?

Go
慕工程0101907 2021-11-08 19:17:48
req, err := http.NewRequest("GET", "http://example.com", nil)req.AddCookie(&http.Cookie{Name: "c", Value: "ccc"})resp, err := client.Do(req)我需要在磁盤上緩存響應,并在從緩存恢復后將其類型保持為 http.Response。有任何想法嗎?
查看完整描述

2 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

最簡單的方法是使用httputil.DumpResponsehttp.ReadResponse。

有關示例,請參見此處。(您必須將代碼復制到本地機器上并在那里運行,因為 Playground 不允許 I/O)

第一個將您收到的請求轉儲,也可以選擇將正文轉儲到內存中的 [] 字節,然后您可以將其寫入磁盤。稍后您可以從磁盤(或您存儲它的任何位置)讀取響應并將其包裝在 bufio.Reader 中,然后將其傳遞給 http.ReadResponse。

ReadResponse 將 *http.Request 作為第二個參數,用作響應的 Request 字段的值。如果給出 nil,則返回的 Response 將在其 Request 字段中包含 GET 請求。


查看完整回答
反對 回復 2021-11-08
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

...或使用https://github.com/lox/httpcache。一個符合 RFC7234 的 golang http.Handler,用于緩存 HTTP 響應


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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