为了账号安全,请及时绑定邮箱和手机立即绑定

在Go中通过HTTP接收二进制数据

在Go中通过HTTP接收二进制数据

Go
繁华开满天机 2021-05-06 18:34:28
通过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)


查看完整回答
反对 回复 2021-05-17
  • 1 回答
  • 0 关注
  • 383 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信