繁体   English   中英

将http.Response连接到http.ResponseWriter

[英]Piping http.Response to http.ResponseWriter

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

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

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

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()

}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM