[英]Convert byte slice to io.Reader
在我的項目中,我有一個來自請求響應的字節切片。
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
log.Println("StatusCode為" + strconv.Itoa(resp.StatusCode))
return
}
respByte, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Println("fail to read response data")
return
}
這有效,但如果我想獲得io.Reader
的響應正文,我該如何轉換? 我嘗試了 newreader/writer 但沒有成功。
要從[]byte
切片獲取實現io.Reader
的類型,您可以使用bytes
包中的bytes.NewReader
:
r := bytes.NewReader(byteData)
這將返回一個bytes.Reader
類型的值,它實現了io.Reader
(和io.ReadSeeker
)接口。
不要擔心它們不是同一個“類型”。 io.Reader
是一個接口,可以通過多種不同的類型實現。 要詳細了解 Go 中的接口,請閱讀Effective Go:接口和類型。
r := strings(byteData)
這也適用於將[]byte
轉換為io.Reader
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.