我正在尝试将一些在帖子上gzip压缩的数据发送到golang服务器并在帖子中使用gunzipped。基本上,我做了以下输入
curl -X POST -H "Content-Encoding: gzip" -d @helloworld.gz http://myapp/
在服务器端
func PostEndpoint(w http.ResponseWriter, req *http.Request) {
gunzip, err := gzip.NewReader(req.Body)
if err != nil {
log.Println("error unzip: ",err)
}
body , _ := ioutil.ReadAll(gunzip)
}
我一直收到EOF错误。我试图用ioutil.ReadAll(req.Body)
打印原始字节,它实际上不是我从curl发送的完整数据。
是否需要配置多路复用?现在我把它创建为
router := mux.NewRouter()
router.HandleFunc("/", GetEndpoint).Methods("GET")
router.HandleFunc("/", PostEndpoint).Methods("POST")
log.Fatal(http.ListenAndServe(":80", router))
答案 0 :(得分:1)
必须在curl上使用--binary-data而不是--data