我正在尝试使用 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/

10-10 14:32