最简单的方法是使用httputil.DumpResponse和http.ReadResponse。

有关示例,请参见此处。(您必须将代码复制到本地机器上并在那里运行,因为 Playground 不允许 I/O)

第一个将您收到的请求转储,也可以选择将正文转储到内存中的 [] 字节,然后您可以将其写入磁盘。稍后您可以从磁盘(或您存储它的任何位置)读取响应并将其包装在 bufio.Reader 中,然后将其传递给 http.ReadResponse。

ReadResponse 将 *http.Request 作为第二个参数,用作响应的 Request 字段的值。如果给出 nil,则返回的 Response 将在其 Request 字段中包含 GET 请求。