去通过HTTP接收二进制数据的最佳方式是什么?就我而言,我想将zip文件发送到我的应用程序的REST API。具体到goweb的例子会很好,但是net/http也很好。请求主体在Go中通过HTTP接收二进制数据
1
A
回答
8
刚读它
喜欢的东西
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 := os.TempFile("", "my_app_prefix")
if err!=nil {log.Fatal("cannot open temp file", err)}
defer f.Close()
io.Copy(f, req.Body)
+1
请注意,这种处理方式将整个请求体读入内存。在现实世界中,您可能想要限制大小,将数据存储在磁盘上或其他内容。 – 2012-07-30 08:36:27
+0
@EvanShaw当然,但这就是读者想要的...... – 2012-07-30 13:23:38
+0
限制它是明智的,但我最感兴趣的是一个例子来教育自己。 – cmhobbs 2012-07-31 20:24:05
相关问题
- 1. 通过http接收二进制数据
- 2. 如何通过套接字发送/接收二进制数据?
- 3. 以HTTP格式从HTTP服务器接收二进制数据
- 4. Ajax请求接收二进制数据
- 5. Eventmachine:转义接收二进制数据
- 6. 通过HTTP读取TSQL中的二进制数据GET
- 7. 通过Python发送二进制数据通过套接字
- 8. 通过HTTP的二进制协议
- 9. 发送二进制数据为HTTP并通过防火墙
- 10. 如何通过HTTP发送二进制文章数据?
- 11. 通过http流式传输二进制数据
- 12. 通过http使用Python发布二进制数据 - > PHP
- 13. 通过HTTP POST发送二进制文本和文本数据
- 14. 通过HTTP请求将二进制数据上传到AppEngine Blobstore
- 15. 通过C++读取二进制数据
- 16. 传输二进制数据通过ttyACM
- 17. 通过webob.Response返回二进制数据
- 18. 如何在多帧中接收二进制数据lang
- 19. 如何使用NodeMCU通过TCP发送/接收二进制数据?
- 20. Solr的二进制过HTTP
- 21. 在matlab中连接二进制数据?
- 22. 是否有通过HTTP,HTTP隧道发送二进制数据的Java库?
- 23. 接收通过CURL发送的二进制文件
- 24. 如何从TIdHTTPWebBrokerBridge中的请求接收二进制数据?
- 25. python套接字接收二进制数据
- 26. 通过PeerJS接收数据
- 27. Apex HTTP PUT与二进制数据
- 28. 如何通过Mongoose在MongoDB中存储二进制数据(PNG)?
- 29. 在C++中通过类读取二进制数据与streambuf
- 30. 在OpenLayers中通过XMLHttpRequest加载二进制数据
你是什么意思与“去接收“,你是指如何最好地实现它并将其解析为GO,还是指的是如何以REST风格最好地发送它? – Cleric 2012-07-30 03:05:07
如何在Go中实现和解析它,尽管有关RESTful最佳实践的任何意见也不胜感激。 – cmhobbs 2012-07-30 03:09:37