将http.Response连接到http.ResponseWriter

时间:2015-03-06 02:39:37

标签: go

我试图将从API接收的文件传回给用户,而不必将其全部存储在内存中。

我在搜索中遇到了不同的概念/想法,例如io.Copyio.Pipe()等。我不确定哪一个是正确的解决方案。

例如,如果有人在现场创建新的读者和作者,而不是已经存在的读者和作者,io.Pipe()似乎就是这样。

1 个答案:

答案 0 :(得分:10)

io.Copy是实现这一目标的方式,其中包括:

func pipeReq(rw http.ResponseWriter, req *http.Request) {
    resp, err := http.Get(".....")
    if err != nil{
        //handle the error
        return
    }
    rw.Header().Set("Content-Type", resp.Header.Get("Content-Type"))
    rw.Header().Set("Content-Length", resp.Header.Get("Content-Length"))
    io.Copy(rw, resp.Body)
    resp.Body.Close()

}

//编辑:误读了问题,现在修复了代码。