go中的http响应迭代

我有一个返回文本行的 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)

}

这就是我阅读身体的方式。问题是我有一个来自阅读器的大字节数组,但我不完全确定如何将它从一个字节数组转换为一段行。


我如何将字节数组转换为一段线?


慕桂英546537
浏览 210回答 1
1回答

蓝山帝景

您可以使用bytes.Split将响应正文分成几行: lines := bytes.Split(body, []byte{'\n'})  // lines is a [][]byte您还可以使用扫描仪遍历这些行: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}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go