将字节数组转换为golang中的io.read

在我的项目中,我有一个来自请求响应的字节数组。

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.read ,我该如何转换? 我尝试了新的读者/作家,但没有成功。

要得到一个从[]byte切片实现io.Reader的types,可以在bytes包中使用bytes.NewReader

 r := bytes.NewReader(byteData) 

这将返回一个types为bytes.Reader实现io.Reader (和io.ReadSeeker )接口的值。

不要担心他们不是相同的“types”。 io.Reader是一个接口,可以通过许多不同的types来实现。 要了解更多关于Go的接口,请阅读Effective Go:Interfaces and Types 。

r:=string(byteData)

这也可以将[]字节转换为io.reader