我有一个返回文本行的HTTP端点。以下是我如何获取它。
response, err := client.Do(request)
if err != nil {
log.Errorf("Error with request: %s", err)
}
defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Errorf("Error: %s", err)
}
这就是我正在读的身体。问题是我有一个来自阅读器的大字节数组,但我不完全确定如何将它从字节数组转换为一条线。
如何将字节数组转换为一条线?
答案 0 :(得分:3)
您可以使用bytes.Split将响应正文分成几行:
lines := bytes.Split(body, []byte{'\n'}) // lines is a [][]byte
您还可以使用scanner来迭代这些行:
response, err := client.Do(request)
if err != nil {
log.Errorf("Error with request: %s", err)
}
defer response.Body.Close()
s := bufio.NewScanner(response.Body)
for s.Scan() {
// do something with s.Bytes() or s.Text()
}
if err := s.Err(); err != nil {
// handle error
}