我正在尝试使用 resp, err := http.Get(url)
命令将响应写入文件,并使用相同的响应来提取链接。
在我使用 resp.Write(f)
将内容写入文件后,如果不发出另一个 resp.Body
请求,我就不能将 http.Get
用于其他目的(用于来自上述 url 的响应)。
我试过 resp2 := bytes.NewBuffer(resp)
。由于类型不匹配,它给出了错误。我也试过复制。
最佳答案
假设响应适合内存,只需创建一个缓冲区并使用 resp.Write ,例如(未经测试,基本正确):
var b bytes.Buffer
if err := resp.Write(b); err != nil {
// handle error
} else {
// Do something with buffer
}
对于适用于任何读取器的代码,请使用: ioutil.ReadAll ,它返回一个新的 []byte ,其中包含您可以包装在 bytes.Buffer 中的数据
关于go - 如何在 Golang 中复制 http.Get(url) 请求的响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35015084/