1

我正在尝试将一些在帖子中压缩的数据发送到 golang 服务器,并在帖子中使用压缩包。基本上,我做以下输入

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))
4

1 回答 1

0

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

于 2016-09-30T19:08:40.870 回答