如何在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` 接口和缓冲区的内容。您能告诉我一种简单且正确的方法来将整个响应读取为字符串吗?最好附带可以直接复制使用的代码示例。