Avatar ·

如何在Go中获取HTTP响应体作为字符串?

大家好!我刚开始学习Go,在处理HTTP请求时遇到了问题。我需要向外部API发送GET请求,并将响应作为普通字符串(string)获取,以便后续处理——例如解析JSON或仅记录日志。 我写了这样的代码: ```go resp, err := http.Get("https://api.example.com/data") if err != nil { log.Fatal(err) } defer resp.Body.Close() fmt.Println(resp) // 打印出类似 &{200 OK 200 ...} 的内容 ``` 问题在于 `resp` 是一个 `*http.Response` 结构体,而不是字符串。我尝试访问 `resp.Body`,但它是 `io.ReadCloser`,我不知道如何从中获取文本。在其他语言(Python、JavaScript)中,我习惯直接读取 `response.text` 或 `response.body`,但这里更复杂。 我阅读了文档,但其中有很多关于 `io.Reader` 接口和缓冲区的内容。您能告诉我一种简单且正确的方法来将整个响应读取为字符串吗?最好附带可以直接复制使用的代码示例。