首页 > 解决方案 > Go 如何从请求 a.body 流式读取到新请求的主体

问题描述

现在,我用 Golang 做这样的事情:

//read all bytes from body
bytes, err := ioutil.ReadAll(request.Body)
//set the bytes as NewReader to new request.body
request, err := http.NewRequest(http.MethodPut, url, bytes.NewReader(bytes))

但我想从原始主体(io.Reader)流式读取到新的,而不是通过 ReadAll 将所有字节读取到内存,然后复制到 NewRequest。

我该如何实施?

谢谢。

标签: httpgo

解决方案


如果您想要专门的阅读器 - 编写器处理,请检查io包,管道或 Tee 结构可能有用。

不过,在这种情况下,

request, err := http.NewRequest(http.MethodPut, url, request.Body)

实际上应该可以正常工作。


推荐阅读