내 프로젝트에는 요청 응답의 바이트 슬라이스가 있습니다.
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
어떻게 변환합니까? 나는 새로운 리더 / 작가를 시도했지만 성공하지 못했습니다.
답변
슬라이스 io.Reader
에서 구현되는 유형을 얻으려면 패키지 에서 []byte
사용할 수 있습니다 .bytes.NewReader
bytes
r := bytes.NewReader(byteData)
이것은 (and ) 인터페이스 bytes.Reader
를 구현하는 type 값을 반환합니다 .io.Reader
io.ReadSeeker
그들이 같은 “유형”이 아닌 것에 대해 걱정하지 마십시오. io.Reader
인터페이스이며 다양한 유형으로 구현할 수 있습니다. Go의 인터페이스에 대해 조금 더 배우려면 Effective Go : Interfaces and Types를 읽으십시오 .
답변
r := strings(byteData)
이것은 또한 차례에 작동 []byte
에io.Reader