第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何保存,然后再次提供 io 類型的數(shù)據(jù)。讀者?

如何保存,然后再次提供 io 類型的數(shù)據(jù)。讀者?

Go
慕姐8265434 2022-09-26 15:14:15
我想用通過HTTP調(diào)用檢索的八卦數(shù)據(jù)進(jìn)行多次解析。由于我想避免對每個(gè)解析進(jìn)行調(diào)用,因此我想保存此數(shù)據(jù)并重用它。我從網(wǎng)上得到的。獲取 的類型為 。gocal 解析器需要,所以它工作。Bodyio.ReadCloserio.Reader由于我只能檢索一次,我可以保存它,但后來我不知道如何充當(dāng)背部(到解析器,幾次以考慮不同的解析條件)Bodybody, _ := io.ReadAll(get.Body)[]byteio.Readergocal
查看完整描述

1 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

如您所見,該讀取器公開為 ,此讀取器不可重用,因?yàn)樗苯舆B接到底層連接*(可能是 tcp/utp/或任何其他流,如網(wǎng)絡(luò)包下的讀取器)。從連接中讀取字節(jié)后,新字節(jié)將等待另一次讀取。http.Response.Bodyio.Reader

實(shí)際上,為了保存響應(yīng),您需要先將其排出,并將該結(jié)果保存在變量中。

body, _ := io.ReadAll(get.Body)

為了使用 Go 編程語言多次重復(fù)使用該字節(jié)段,標(biāo)準(zhǔn) API 提供了緩沖讀取器字節(jié)。NewReader.

此緩沖區(qū)充分提供了重置([]字節(jié))方法來重置緩沖區(qū)的狀態(tài)。

字節(jié)。Reader.Reset 對于多次讀取相同的字節(jié)緩沖區(qū)(無分配)非常有用。相比之下,字節(jié)。每次調(diào)用新讀取器時(shí)都會(huì)進(jìn)行分配。

最后,在對 的兩次連續(xù)調(diào)用之間,應(yīng)使用之前收集的字節(jié)緩沖區(qū)重置緩沖區(qū)。c.Parser

如:

buf := bytes.NewReader(body)

// initialize the parser

c.Parse()

// process the result


// reset the buf, parse again

buf.Reset(body)

c.Parse()

您可以嘗試此版本 https://play.golang.org/p/YaVtCTZHZEP 它使用緩沖區(qū),但接口和行為相似。strings.NewReader

  • 不是很明顯,這是一般原則,傳輸讀取標(biāo)題,除非您消耗它,否則不會(huì)觸及身體。另見。


查看完整回答
反對 回復(fù) 2022-09-26
  • 1 回答
  • 0 關(guān)注
  • 105 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號