去通過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