http - 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。
我该如何实施?
谢谢。
解决方案
如果您想要专门的阅读器 - 编写器处理,请检查io
包,管道或 Tee 结构可能有用。
不过,在这种情况下,
request, err := http.NewRequest(http.MethodPut, url, request.Body)
实际上应该可以正常工作。
推荐阅读
- gzip - 如何在 C++ 中将 .json 文件压缩成 .json.gz 文件格式?
- sql - PostgreSQL 中 DATEADD 的等价物?
- php - 发布请求后我的会话被破坏
- android - 如何在android项目中使用不同的google-services.json文件添加不同风格的相同应用程序(想要克隆应用程序)?
- excel - 如果没有找到结果如何停止处理
- java - RedisHttpSession 正在为来自同一浏览器的请求创建不同的 sessionId
- powershell - 在 powershell 脚本中捕获错误
- android - 广播接收器无法正常工作
- ansible - 在导入任务中的不同主机上运行任务
- r - R中的唯一/不同,不保留任何非唯一行