通过go中的HTTP接收二进制数据的最佳方法是什么?就我而言,我想将zip文件发送到应用程序的REST API。特定于goweb的示例会很棒,但是net / http也可以。
1 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
只需从请求正文中读取
就像是
package main
import ("fmt";"net/http";"io/ioutil";"log")
func h(w http.ResponseWriter, req *http.Request) {
buf, err := ioutil.ReadAll(req.Body)
if err!=nil {log.Fatal("request",err)}
fmt.Println(buf) // do whatever you want with the binary file buf
}
一种更合理的方法是将文件复制到某个流中
defer req.Body.Close()
f, err := ioutil.TempFile("", "my_app_prefix")
if err!=nil {log.Fatal("cannot open temp file", err)}
defer f.Close()
io.Copy(f, req.Body)
- 1 回答
- 0 关注
- 383 浏览
添加回答
举报
0/150
提交
取消