我正在尝试将一些在帖子中压缩的数据发送到 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 发送的完整数据。
mux 需要配置什么吗?现在我将其创建为
router := mux.NewRouter()
router.HandleFunc("/", GetEndpoint).Methods("GET")
router.HandleFunc("/", PostEndpoint).Methods("POST")
log.Fatal(http.ListenAndServe(":80", router))
最佳答案
必须在 curl 上使用 --binary-data 而不是 --data
关于http - golang 接受 gzip 后的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39797732/