golang在帖子上接受gzipped数据

时间:2016-09-30 18:21:00

标签: http go gzip mux

我正在尝试将一些在帖子上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))

1 个答案:

答案 0 :(得分:1)

必须在curl上使用--binary-data而不是--data